Libraries


library(here)
library(dplyr)
library(tidyverse)
library(sf)
library(data.table)
library(ggplot2)
library(raster)
library(prismatic)
library(arulesCBA)
library(tibble)
library(osmdata)
library(wesanderson)
library(ggpubr)
library(kableExtra)

Attaching package: ‘kableExtra’

The following object is masked from ‘package:dplyr’:

    group_rows
library(magick)
Linking to ImageMagick 6.9.12.93
Enabled features: cairo, fontconfig, freetype, heic, lcms, pango, raw, rsvg, webp
Disabled features: fftw, ghostscript, x11

Observation data


filenames <- list.files(here("source"),pattern="*.gpkg$")

layers_s = c("09h30_staying","12h30_staying","15h30_staying","18h30_staying")
layers_m = c("09h30_moving","12h30_moving","15h30_moving","18h30_moving")

list_m = list()
list_s = list()

for (i in filenames) {

filename = i  
  
for (j in layers_s) {
df = st_read(here("source",filename),j)
df$fileid = filename
df$layer = j
df = df %>% dplyr::select(-Photo,-mode,-row,-id)
list_s[[length(list_s)+1]]=df
rm(df)
}

for (j in layers_m) {
df = st_read(here("source",filename),j)
df$fileid = paste0(filename,j)
df$fileid = filename
df$layer = j
df = df %>% dplyr::select(-Direction,-Photo)
list_m[[length(list_m)+1]]=df
rm(df)
}

rm(filename)

}
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355235.1 ymin: 6689105 xmax: 355409.4 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 37 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355278.9 ymin: 6689125 xmax: 355393.8 ymax: 6689234
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 26 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355217.4 ymin: 6689113 xmax: 355428.9 ymax: 6689196
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 23 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355276.8 ymin: 6689138 xmax: 355410 ymax: 6689220
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355175.8 ymin: 6689079 xmax: 355323.3 ymax: 6689245
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355256.6 ymin: 6689180 xmax: 355408.8 ymax: 6689248
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355192.5 ymin: 6689085 xmax: 355343.9 ymax: 6689199
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355214 ymin: 6689133 xmax: 355413.4 ymax: 6689252
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355268.4 ymin: 6689174 xmax: 355369.1 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355188.9 ymin: 6689123 xmax: 355291.4 ymax: 6689169
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 21 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355272.2 ymin: 6689167 xmax: 355379.3 ymax: 6689227
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355193 ymin: 6689114 xmax: 355268 ymax: 6689165
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355260.7 ymin: 6689122 xmax: 355436 ymax: 6689243
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355169 ymin: 6689062 xmax: 355445.7 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355247.9 ymin: 6689118 xmax: 355421.4 ymax: 6689265
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230614_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355180.9 ymin: 6689056 xmax: 355430 ymax: 6689235
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355217.6 ymin: 6689107 xmax: 355299.3 ymax: 6689160
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 41 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.5 ymin: 6689124 xmax: 355426.8 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 21 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355220 ymin: 6689112 xmax: 355420.3 ymax: 6689192
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 26 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355267.1 ymin: 6689135 xmax: 355418.8 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 17 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355168.1 ymin: 6689068 xmax: 355422.6 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355260.7 ymin: 6689170 xmax: 355414.2 ymax: 6689253
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355196.2 ymin: 6689073 xmax: 355339.3 ymax: 6689209
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355243.7 ymin: 6689163 xmax: 355420.4 ymax: 6689263
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 15 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355275.9 ymin: 6689134 xmax: 355420.8 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355198.4 ymin: 6689089 xmax: 355289.9 ymax: 6689164
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 26 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.6 ymin: 6689168 xmax: 355380.1 ymax: 6689229
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355195.1 ymin: 6689107 xmax: 355270.8 ymax: 6689161
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 3 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355261 ymin: 6689164 xmax: 355430.2 ymax: 6689265
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355176.3 ymin: 6689087 xmax: 355439.9 ymax: 6689256
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355259.2 ymin: 6689123 xmax: 355454.9 ymax: 6689259
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230615_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355169.5 ymin: 6689083 xmax: 355439 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 19 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355222.6 ymin: 6689099 xmax: 355344.7 ymax: 6689161
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 32 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.5 ymin: 6689136 xmax: 355396.1 ymax: 6689224
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 32 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355213.2 ymin: 6689106 xmax: 355416.7 ymax: 6689197
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 22 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355271.9 ymin: 6689129 xmax: 355420.3 ymax: 6689214
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 15 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355142.6 ymin: 6689037 xmax: 355368.8 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355247.4 ymin: 6689171 xmax: 355406 ymax: 6689257
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355196.3 ymin: 6689091 xmax: 355343.7 ymax: 6689240
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355254.6 ymin: 6689158 xmax: 355411.7 ymax: 6689250
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 22 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355272.5 ymin: 6689138 xmax: 355375.4 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355224.7 ymin: 6689106 xmax: 355268.9 ymax: 6689159
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 33 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.3 ymin: 6689167 xmax: 355377 ymax: 6689226
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355190.6 ymin: 6689130 xmax: 355211.6 ymax: 6689155
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355246.7 ymin: 6689157 xmax: 355409.5 ymax: 6689256
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 15 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355193.5 ymin: 6689083 xmax: 355441 ymax: 6689226
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355259.8 ymin: 6689113 xmax: 355439.6 ymax: 6689244
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230624_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355170.7 ymin: 6689080 xmax: 355439.3 ymax: 6689228
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355286.7 ymin: 6689182 xmax: 355368.3 ymax: 6689221
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355296.4 ymin: 6689137 xmax: 355425 ymax: 6689199
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355181.5 ymin: 6689109 xmax: 355288.4 ymax: 6689163
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 19 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355271.9 ymin: 6689167 xmax: 355356.9 ymax: 6689218
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355253.2 ymin: 6689162 xmax: 355406.7 ymax: 6689250
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355274.8 ymin: 6689118 xmax: 355430.9 ymax: 6689241
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355116.1 ymin: 6689038 xmax: 355341.5 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355254.3 ymin: 6689124 xmax: 355404.6 ymax: 6689249
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355287.5 ymin: 6689124 xmax: 355409.7 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355222.3 ymin: 6689109 xmax: 355267.5 ymax: 6689161
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 28 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.4 ymin: 6689166 xmax: 355370.4 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355282.9 ymin: 6689126 xmax: 355424.6 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 3 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355275.1 ymin: 6689115 xmax: 355419 ymax: 6689218
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355196.4 ymin: 6689089 xmax: 355287.5 ymax: 6689182
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355256.9 ymin: 6689159 xmax: 355404.9 ymax: 6689239
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355265.8 ymin: 6689129 xmax: 355435.7 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355189.7 ymin: 6689126 xmax: 355292.3 ymax: 6689175
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 24 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355273.4 ymin: 6689172 xmax: 355371.4 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 17 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355285.6 ymin: 6689130 xmax: 355418.2 ymax: 6689200
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355193.4 ymin: 6689127 xmax: 355251.7 ymax: 6689163
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355167.1 ymin: 6689077 xmax: 355326.5 ymax: 6689217
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355256.2 ymin: 6689165 xmax: 355408 ymax: 6689247
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355265.1 ymin: 6689106 xmax: 355431.9 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230710_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355150.7 ymin: 6689090 xmax: 355295.9 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.6 ymin: 6689174 xmax: 355370.3 ymax: 6689221
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355307.7 ymin: 6689127 xmax: 355414.8 ymax: 6689199
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355189.5 ymin: 6689114 xmax: 355288.1 ymax: 6689154
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 17 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355273.1 ymin: 6689168 xmax: 355381.8 ymax: 6689221
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355252.7 ymin: 6689131 xmax: 355406 ymax: 6689272
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355240.5 ymin: 6689088 xmax: 355437.4 ymax: 6689252
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355163.9 ymin: 6689075 xmax: 355303.9 ymax: 6689230
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355255.7 ymin: 6689131 xmax: 355407.4 ymax: 6689247
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355288.7 ymin: 6689142 xmax: 355417.3 ymax: 6689211
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355202.1 ymin: 6689106 xmax: 355288.9 ymax: 6689165
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 26 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355272.9 ymin: 6689166 xmax: 355371 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355311.1 ymin: 6689141 xmax: 355420.7 ymax: 6689204
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355274.5 ymin: 6689115 xmax: 355439.7 ymax: 6689215
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355200.4 ymin: 6689096 xmax: 355292.5 ymax: 6689188
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355257.6 ymin: 6689158 xmax: 355401.8 ymax: 6689237
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_fichaux.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355267.8 ymin: 6689110 xmax: 355440.7 ymax: 6689217
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 15 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355223.1 ymin: 6689107 xmax: 355289.1 ymax: 6689189
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 28 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.6 ymin: 6689167 xmax: 355370.6 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355281.3 ymin: 6689124 xmax: 355421.8 ymax: 6689196
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 19 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355193.8 ymin: 6689107 xmax: 355267.8 ymax: 6689159
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355171.7 ymin: 6689081 xmax: 355316.7 ymax: 6689218
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355258.7 ymin: 6689169 xmax: 355402.2 ymax: 6689258
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355279.7 ymin: 6689113 xmax: 355436.4 ymax: 6689212
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230718_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355170.6 ymin: 6689084 xmax: 355275.2 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355276.6 ymin: 6689170 xmax: 355356.9 ymax: 6689218
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355285.7 ymin: 6689125 xmax: 355418.7 ymax: 6689200
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355191.9 ymin: 6689101 xmax: 355277.5 ymax: 6689159
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355273.3 ymin: 6689167 xmax: 355367.6 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355254.8 ymin: 6689136 xmax: 355435.4 ymax: 6689249
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355203.7 ymin: 6689090 xmax: 355433 ymax: 6689253
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355166.2 ymin: 6689073 xmax: 355402.3 ymax: 6689229
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355256.1 ymin: 6689121 xmax: 355403.6 ymax: 6689246
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355293.6 ymin: 6689137 xmax: 355407.6 ymax: 6689199
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355194.3 ymin: 6689106 xmax: 355272.6 ymax: 6689162
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 23 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.7 ymin: 6689166 xmax: 355358 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355283.1 ymin: 6689134 xmax: 355417 ymax: 6689200
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355270.9 ymin: 6689111 xmax: 355426.4 ymax: 6689219
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 15 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355187.8 ymin: 6689092 xmax: 355289.7 ymax: 6689178
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355258.7 ymin: 6689164 xmax: 355400.9 ymax: 6689241
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355270 ymin: 6689128 xmax: 355427.4 ymax: 6689211
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355216.9 ymin: 6689126 xmax: 355285.3 ymax: 6689180
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 25 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355271.6 ymin: 6689166 xmax: 355370.5 ymax: 6689220
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355284.6 ymin: 6689132 xmax: 355419 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 20 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355210.2 ymin: 6689109 xmax: 355278.8 ymax: 6689161
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355170.6 ymin: 6689066 xmax: 355346.1 ymax: 6689237
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355169.5 ymin: 6689141 xmax: 355409.6 ymax: 6689261
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355255.9 ymin: 6689110 xmax: 355421.9 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230821_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355187.7 ymin: 6689066 xmax: 355309.5 ymax: 6689187
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 25 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355279.6 ymin: 6689125 xmax: 355408.4 ymax: 6689224
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355287.8 ymin: 6689124 xmax: 355421.4 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355191.4 ymin: 6689099 xmax: 355274 ymax: 6689152
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355273.2 ymin: 6689168 xmax: 355374.9 ymax: 6689217
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355258.6 ymin: 6689120 xmax: 355419.9 ymax: 6689242
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355248.7 ymin: 6689092 xmax: 355438.6 ymax: 6689230
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355163.8 ymin: 6689072 xmax: 355309.9 ymax: 6689231
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355259.1 ymin: 6689128 xmax: 355403.4 ymax: 6689246
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 1 feature and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355332.8 ymin: 6689140 xmax: 355332.8 ymax: 6689140
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355198 ymin: 6689108 xmax: 355265.1 ymax: 6689159
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 34 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270 ymin: 6689163 xmax: 355360.2 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355281.9 ymin: 6689126 xmax: 355424.8 ymax: 6689200
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 1 feature and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355327.5 ymin: 6689133 xmax: 355346 ymax: 6689168
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355194.2 ymin: 6689091 xmax: 355286.6 ymax: 6689184
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355260.1 ymin: 6689165 xmax: 355391.9 ymax: 6689238
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355275.1 ymin: 6689114 xmax: 355438.4 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355206.9 ymin: 6689109 xmax: 355276.5 ymax: 6689168
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 33 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355271.8 ymin: 6689166 xmax: 355369.4 ymax: 6689220
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 14 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355319.8 ymin: 6689147 xmax: 355409.3 ymax: 6689213
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 18 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355204.5 ymin: 6689119 xmax: 355263.9 ymax: 6689159
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 24 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355195.3 ymin: 6689071 xmax: 355427 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355240.1 ymin: 6689171 xmax: 355403.8 ymax: 6689253
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355262.2 ymin: 6689126 xmax: 355435.4 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230822_etienn.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355172.8 ymin: 6689071 xmax: 355303.3 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355275.9 ymin: 6689173 xmax: 355366.4 ymax: 6689222
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 16 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355297.6 ymin: 6689132 xmax: 355424.3 ymax: 6689199
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355182.2 ymin: 6689110 xmax: 355291.9 ymax: 6689158
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 19 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355276 ymin: 6689170 xmax: 355385.4 ymax: 6689237
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355258.4 ymin: 6689126 xmax: 355410.3 ymax: 6689249
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355246.3 ymin: 6689089 xmax: 355439.5 ymax: 6689243
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355173.3 ymin: 6689079 xmax: 355327.4 ymax: 6689225
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ayoubi.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355258.5 ymin: 6689130 xmax: 355409.1 ymax: 6689252
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355292.4 ymin: 6689125 xmax: 355408.9 ymax: 6689201
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355199.2 ymin: 6689107 xmax: 355261 ymax: 6689161
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 27 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355270.5 ymin: 6689168 xmax: 355355.4 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355291.6 ymin: 6689125 xmax: 355424.1 ymax: 6689196
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 13 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355265.1 ymin: 6689116 xmax: 355432.5 ymax: 6689214
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 12 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355198.1 ymin: 6689092 xmax: 355299 ymax: 6689183
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 8 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355249.8 ymin: 6689159 xmax: 355393.7 ymax: 6689242
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_delecrin.gpkg' 
  using driver `GPKG'
Simple feature collection with 10 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355274.8 ymin: 6689110 xmax: 355436.5 ymax: 6689223
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 6 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355212 ymin: 6689106 xmax: 355262.8 ymax: 6689159
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 25 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355271.8 ymin: 6689167 xmax: 355370.3 ymax: 6689221
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355286.5 ymin: 6689123 xmax: 355412.4 ymax: 6689192
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_staying' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 11 features and 24 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 355207 ymin: 6689109 xmax: 355254.7 ymax: 6689163
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `09h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355168.1 ymin: 6689079 xmax: 355304.6 ymax: 6689216
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `12h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 4 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355262.1 ymin: 6689154 xmax: 355408.3 ymax: 6689253
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `15h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 5 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355272.1 ymin: 6689109 xmax: 355439.7 ymax: 6689269
Projected CRS: RGF93 v1 / Lambert-93
Reading layer `18h30_moving' from data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/source/commerce_feydeau_qfield_20230823_ganfon.gpkg' 
  using driver `GPKG'
Simple feature collection with 9 features and 18 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 355174.4 ymin: 6689076 xmax: 355298.5 ymax: 6689204
Projected CRS: RGF93 v1 / Lambert-93
df_s = rbindlist(list_s,use.names = FALSE) %>% as.data.frame() %>% st_as_sf()
df_s = df_s %>% rename_with(~ gsub(".", "_", .x, fixed = TRUE))
df_s = df_s[!(is.na(df_s$activity)), ]
df_s %>% ggplot() + geom_sf()


df_m = rbindlist(list_m,use.names = FALSE) %>% as.data.frame() %>% st_as_sf()
df_m = df_m %>% rename_with(~ gsub(".", "_", .x, fixed = TRUE))
df_m = df_m[!(is.na(df_m$mouvement)), ]
df_m %>% ggplot() + geom_sf()

NA
NA

IDs


#survey_id
df_s$survey_id =
  paste0(
  str_split_i(df_s$fileid,"_",1),"_",
  str_split_i(df_s$fileid,"_",2),"_",
  str_split_i(df_s$fileid,"_",4),"_",
  gsub("h","",str_split_i(df_s$layer,"_",1)),
  "00")

df_m$survey_id =
  paste0(
  str_split_i(df_m$fileid,"_",1),"_",
  str_split_i(df_m$fileid,"_",2),"_",
  str_split_i(df_m$fileid,"_",4),"_",
  gsub("h","",str_split_i(df_m$layer,"_",1)),
  "00")

#observer_id
df_s$observer =
  gsub(".gpkg","",str_split_i(df_s$fileid,"_",5))

df_m$observer =
  gsub(".gpkg","",str_split_i(df_m$fileid,"_",5))

# row_id
df_s$row_id <- paste(df_s$survey_id, ave(df_s$timestamp,df_s$survey_id, FUN = seq_along), sep="_")
df_m$row_id <- paste(df_m$survey_id, ave(df_m$timestamp,df_m$survey_id, FUN = seq_along), sep="_")

#tc
df_s$tc = gsub("h",":",str_split_i(df_s$layer,"_",1))
df_m$tc = gsub("h",":",str_split_i(df_m$layer,"_",1))

Means & totals


# Row_total
df_s$row_total = df_s$gender_male+df_s$gender_female

df_s$gender_unknown = 
  ifelse(
    df_s$row_total == 0,
    df_s$age_0_14+df_s$age_15_24+df_s$age_25_44+df_s$age_45_64+df_s$age_65_74+df_s$age_75p,
    df_s$gender_unknown
    )

df_s$row_total = 
  ifelse(
    df_s$row_total == 0,
    df_s$age_0_14+df_s$age_15_24+df_s$age_25_44+df_s$age_45_64+df_s$age_65_74+df_s$age_75p,
    df_s$row_total
    )

df_s = df_s %>% filter(row_total != 0)
df_s = df_s %>% drop_na(activity)
  
df_m$row_total <- df_m$gender_male+df_m$gender_female

df_m$gender_unknown = 
  ifelse(
    df_m$row_total == 0,
    df_m$age_0_14+df_m$age_15_24+df_m$age_25_44+df_m$age_45_64+df_m$age_65_74+df_m$age_75p,
    df_m$gender_unknown
    )

df_m$row_total = 
  ifelse(
    df_m$row_total == 0,
    df_m$age_0_14+df_m$age_15_24+df_m$age_25_44+df_m$age_45_64+df_m$age_65_74+df_m$age_75p,
    df_m$row_total
    )

df_m = df_m %>% filter(row_total != 0)
df_m = df_m %>% drop_na(mouvement)


# Mean age per group
df_s$age_mean <- round(((df_s$age_0_14*7)+(df_s$age_15_24*19.5)+(df_s$age_25_44*34.5)+
                                (df_s$age_45_64*54.5)+(df_s$age_65_74*69.5)+
                                (df_s$age_75p*80))/df_s$row_total,digits = 1)

df_m$age_mean <- round(((df_m$age_0_14*7)+(df_m$age_15_24*19.5)+(df_m$age_25_44*34.5)+
                                (df_m$age_45_64*54.5)+(df_m$age_65_74*69.5)+
                                (df_m$age_75p*80))/df_m$row_total,digits = 1)

Separating columns of time & date from timestamp


df_s$date = as.Date(as.POSIXct(as.numeric(df_s$timestamp)/1000, origin="1970-01-01"))
df_m$date = as.Date(as.POSIXct(as.numeric(df_m$timestamp)/1000, origin="1970-01-01"))

df_s$time =
  format(
    as.POSIXct(as.numeric(df_s$timestamp)/1000, origin="1970-01-01", tz = "Europe/Berlin"),
    format = "%H:%M:%S")

df_m$time =
  format(
    as.POSIXct(as.numeric(df_m$timestamp)/1000, origin="1970-01-01", tz = "Europe/Berlin"),
    format = "%H:%M:%S")

Adding coordinates WGS84


#conversion of points into spatial feature object 
df_s_lb93 <- st_as_sf(df_s, coords = c("X_lb93", "Y_lb93"), crs = 2154, agr = "constant", remove = FALSE)
  
#conversion of Lambert93 coordinates into pseudo mercator (WGS84, EPSg 3857) for kepler.gl
df_s_wgs84 <- st_transform(df_s_lb93, 4326)
  
#extracting X and Y coordinates from geometry
df_s_xy_wgs84 <- st_coordinates(df_s_wgs84)
  
#replacing longitude and latitude by X and Y respectively
df_s$X_wgs84 <- df_s_xy_wgs84[,1]
df_s$Y_wgs84 <- df_s_xy_wgs84[,2]

Reorder dataframe


df_s = df_s[,c(
  "survey_id","row_id",
  "timestamp","date","time","tc",
  "X_lb93","Y_lb93","X_wgs84","Y_wgs84",
  "row_total","gender_male","gender_female","gender_unknown",
  "age_mean","age_0_14", "age_15_24","age_25_44","age_45_64","age_65_74","age_75p",
  "posture","interaction","clothing","exposure","activity","stay_time",
  "observer","layer","fileid","geom")]

df_m = df_m[,c(
  "survey_id","row_id",
  "timestamp","date","time","tc",
  "row_total","gender_male","gender_female","gender_unknown",
  "age_mean","age_0_14", "age_15_24","age_25_44","age_45_64","age_65_74","age_75p",
  "interaction","clothing","exposure","mouvement",
  "observer","layer","fileid","geom")]

clean


rm(df_s_lb93)
rm(df_s_wgs84)
rm(df_s_xy_wgs84)
rm(list_s)
rm(list_m)

CRS coordinates and definition


df_s_2154 =  df_s
df_m_2154 =  df_m

df_s_4326 =  st_transform(df_s, 4326)
df_m_4326 =  st_transform(df_m, 4326)

# definie the CRS to use in the subsequent scripts
df_s = df_s_4326
df_m = df_m_4326

Export .gpkg files


st_write(df_s_2154, 
         dsn=here("outcomes","obs_2154.gpkg"),
         layer='staying',
         append=FALSE,
         layer_options = "OVERWRITE=YES")
Deleting layer `staying' using driver `GPKG'
Writing layer `staying' to data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/outcomes/obs_2154.gpkg' using driver `GPKG'
options:        OVERWRITE=YES 
Writing 1436 features with 30 fields and geometry type Point.
st_write(df_s_4326, 
         dsn=here("outcomes","obs_4326.gpkg"),
         layer='staying',
         append=FALSE,
         layer_options = "OVERWRITE=YES")
Deleting layer `staying' using driver `GPKG'
Writing layer `staying' to data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/outcomes/obs_4326.gpkg' using driver `GPKG'
options:        OVERWRITE=YES 
Writing 1436 features with 30 fields and geometry type Point.
st_write(df_m_2154, 
         dsn=here("outcomes","obs_2154.gpkg"),
         layer='moving',
         append=FALSE,
         layer_options = "OVERWRITE=YES")
Deleting layer `moving' using driver `GPKG'
Writing layer `moving' to data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/outcomes/obs_2154.gpkg' using driver `GPKG'
options:        OVERWRITE=YES 
Writing 749 features with 24 fields and geometry type Multi Line String.
st_write(df_m_4326, 
         dsn=here("outcomes","obs_4326.gpkg"),
         layer='moving',
         append=FALSE,
         layer_options = "OVERWRITE=YES")
Deleting layer `moving' using driver `GPKG'
Writing layer `moving' to data source 
  `/Users/irequena/Documents/GitHub/qfield_urban_ethnography/dev/outcomes/obs_4326.gpkg' using driver `GPKG'
options:        OVERWRITE=YES 
Writing 749 features with 24 fields and geometry type Multi Line String.

Plots preparation

context


buildings <- read_sf(here("source","geom","context.gpkg"),"buildings")
buildings = st_transform(buildings, 4326)
plot(buildings)
Warning: plotting the first 9 out of 27 attributes; use max.plot = 27 to plot all

boundary = read_sf(here("source","geom","context.gpkg"),"perimetre") %>% slice(1)
boundary = st_transform(boundary, 4326)
plot(boundary)


zones = read_sf(here("source","geom","context.gpkg"),"zones")
zones = st_transform(zones, 4326)
plot(zones)


track = read_sf(here("source","geom","track.gpkg"),"track3")
track = st_transform(track, 4326)
plot(track)


basemap = stack(here("source","geom","basemap.tif"))
Warning: [minmax] min and max values not available for all layers. See 'setMinMax' or 'global'
basemap_df = as.data.frame(basemap, xy= TRUE)
basemap_df = 
  basemap_df %>% 
  rename(red = basemap_1, #Rename bands
         green = basemap_2,
         blue = basemap_3) %>%
  filter(red != 0) #drop data w/o rgb information

map = stack(here("source","geom","map_georeferenced_clip.tif"))
Warning: [minmax] min and max values not available for all layers. See 'setMinMax' or 'global'
map_df = as.data.frame(map, xy= TRUE)
map_df = 
  map_df %>% 
  rename(red = map_georeferenced_clip_1, #Rename bands
         green = map_georeferenced_clip_2,
         blue = map_georeferenced_clip_3) %>%
  filter(red != 0) #drop data w/o rgb information

bbox = st_bbox(st_buffer(boundary,dist = 0, joinStyle="ROUND")) #global

openstreetmaps data


# the bounding box, limiting what we fetch
#bbox_osm =
#  data.frame(min = c(bbox["xmin"],bbox["ymin"]),
#             max = c(bbox["xmax"],bbox["ymax"]))
#row.names(bbox_osm) = c("x","y")
#bbox_osm = as.matrix(bbox_osm)  

bbox_osm = 
  getbb(
    place_name = "Nantes",
    featuretype = "city"
    )

# tree
map_tree <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "natural", 
                  value = "tree") %>% 
  osmdata_sf()

# jardins
map_garden <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "leisure", 
                  value = c("garden","park")) %>% 
  osmdata_sf()

# jardins
map_grass <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "landuse", 
                  value = "grass") %>% 
  osmdata_sf()

# fontaines
map_eau <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "natural", 
                  value = "water") %>% 
  osmdata_sf()

#tramway
map_tram <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "electrified", 
                  value = "contact_line") %>% 
  osmdata_sf()

#platform
map_tram_platform <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "public_transport", 
                  value = "platform") %>% 
  osmdata_sf()

#building civic
map_building_civic <- bbox_osm %>% 
  opq() %>% 
  add_osm_feature(key = "building", 
                  value = "civic") %>% 
  osmdata_sf()

bbox_4326 = st_bbox(st_transform(st_as_sfc(bbox), 4326))


ggplot() +
  geom_sf(data = map_garden$osm_polygons, fill = "#9DBF9E", col = "#9DBF9E") +
  geom_sf(data = map_grass$osm_polygons, fill = "#9DBF9E", col = "#9DBF9E") +
  geom_sf(data = map_tram$osm_lines, lwd = 1, colour = "gray") +
  geom_sf(data = map_tram_platform$osm_polygons, col = "gray") +
  geom_sf(data = map_tree$osm_points, size = 0.5, col = "#4A6C6F") +
  geom_sf(data = map_eau$osm_polygons, fill = "#9DDBFF", col = "#9DDBFF") +
  geom_sf(data = st_transform(buildings, 4326), col = "black", fill = "black") +
  geom_sf(data = map_building_civic$osm_polygons, col = "black", fill = "black") +
  xlim(bbox_4326[["xmin"]],bbox_4326[["xmax"]])+
  ylim(bbox_4326[["ymin"]],bbox_4326[["ymax"]])+
  theme_bw()

NA
NA

theme


theme_carto <-
  theme_bw() +
  theme(
    #axis.line=element_blank(),
    axis.text.x=element_blank(),
    axis.text.y=element_blank(),
    axis.ticks=element_blank(),
    axis.title.x=element_blank(),
    axis.title.y=element_blank(),
    #legend.position="none",
    panel.background=element_blank(),
    #panel.border=element_blank(),
    panel.grid.major=element_blank(),
    panel.grid.minor=element_blank(),
    plot.background=element_blank(),
    strip.background=element_rect(fill="black"),
    strip.text = element_text(colour = 'white')
    )

background layer

bck =
  ggplot() +
    geom_sf(data = map_garden$osm_polygons, fill = "#9DBF9E", col = "#9DBF9E") +
    geom_sf(data = map_grass$osm_polygons, fill = "#9DBF9E", col = "#9DBF9E") +
    geom_sf(data = map_tram$osm_lines, lwd = 1, col = "grey70") +
    geom_sf(data = map_tram_platform$osm_polygons, col = "grey70") +
    geom_sf(data = map_tree$osm_points, size = 0.5, col = "#4A6C6F") +
    geom_sf(data = map_eau$osm_polygons, fill = "#9DDBFF", col = "#9DDBFF")

bck_atlas =
  ggplot() +
    geom_sf(data = map_garden$osm_polygons, fill = "grey70", col = "grey70") +
    geom_sf(data = map_grass$osm_polygons, fill = "grey70", col = "grey70") +
    geom_sf(data = map_tram$osm_lines, lwd = 1, col = "grey80") +
    geom_sf(data = map_tram_platform$osm_polygons, col = "grey80") +
    geom_sf(data = map_tree$osm_points, size = 0.2, col = "grey30") +
    geom_sf(data = map_eau$osm_polygons, fill = "grey50", col = "grey50")
  
#  geom_raster(
#    data = basemap_df, aes(x = x, y =y), fill = rgb(r = basemap_df$red, g = basemap_df$green, b = basemap_df$blue, maxColorValue = 255),
#    show.legend = FALSE)+
#  geom_raster(
#    data = map_df, aes(x = x, y =y), fill = rgb(r = map_df$red, g = map_df$green, b = map_df$blue, maxColorValue = 255),
#    show.legend = FALSE)

dataframes naming


m = df_m
z = zones
#m = st_intersection(m,z)
s = df_s
#s = st_intersection(s,z)

Statistique

Resume


bcs_sum_s =
df_s %>%
  mutate(
    time = as.POSIXct(time,format="%H:%M:%S", tz="Europe/Paris")
  ) %>%
  group_by(survey_id) %>%
  summarise(
    date = first(date),
    heure = first(tc),
    #start = first(time),
    #end = last(time),
    duration = as.numeric(last(time)-first(time)),
    observers = n_distinct(observer),
    observations = n(),
    nbp = sum(row_total),
    age_mean = mean(age_mean),
    gender_female = sum(gender_female)/nbp,
    gender_male = sum(gender_male)/nbp
    ) %>%
  mutate_if(is.numeric, round, digits=1) %>%
  mutate(
    tair_mf = c(24.9,29.3,29.7,25.0, #14/6/2023
                20.0,25.9,25.2,21.8, #15/6/2023
                27.2,30.2,31.7,30.6, #24/6/2023
                21.4,25.3,26.9,25.5, #10/7/2023
                25.2,28.0,26.3,22.1, #18/7/2023
                24.3,28.9,29.9,27.2, #21/8/2023
                24.0,28.5,31.0,28.6, #22/8/2023
                22.7,30.6,34.6,31.7 #23/8/2023
                )
  ) %>%
  #dplyr::select(-survey_id) %>%
  st_drop_geometry()


bcs_sum_m =
df_m %>%
  mutate(
    time = as.POSIXct(time,format="%H:%M:%S", tz="Europe/Paris")
  ) %>%
  group_by(survey_id) %>%
  summarise(
    date = first(date),
    heure = first(tc),
    #start = first(time),
    #end = last(time),
    duration = as.numeric(last(time)-first(time)),
    observers = n_distinct(observer),
    observations = n(),
    nbp = sum(row_total),
    age_mean = mean(age_mean),
    gender_female = sum(gender_female)/nbp,
    gender_male = sum(gender_male)/nbp
    ) %>%
  mutate_if(is.numeric, round, digits=1) %>%
  mutate(
    tair_mf = c(24.9,29.3,29.7,25.0, #14/6/2023
                20.0,25.9,25.2,21.8, #15/6/2023
                27.2,30.2,31.7,30.6, #24/6/2023
                21.4,25.3,26.9,25.5, #10/7/2023
                25.2,28.0,26.3,22.1, #18/7/2023
                24.3,28.9,29.9,27.2, #21/8/2023
                24.0,28.5,31.0,28.6, #22/8/2023
                22.7,30.6,34.6,31.7 #23/8/2023
                )
  ) %>%
  #dplyr::select(-survey_id) %>%
  st_drop_geometry()


bcs_sum_s %>%
  group_by(date) %>%
  summarise(
    jour = weekdays(first(date), abbreviate = T),
    tair_mf_m = mean(tair_mf),
    campagnes_n = n_distinct(survey_id),
    enqueteurs_n = mean(observers),    
    duree_m = mean(duration),
    observations_m = mean(observations),
    personnes_m = mean(nbp),
    age_m = mean(age_mean),
    hommes_p = mean(gender_male),
    femmes_p = mean(gender_female)
  ) %>%
  mutate_at(vars(campagnes_n,enqueteurs_n,observations_m,personnes_m), round, digits=0) %>%
  mutate_at(vars(tair_mf_m,duree_m,age_m), round, digits=1) %>%
  mutate_at(vars(hommes_p,femmes_p), round, digits=2) %>%
  kable(
    format = "html",
    col.names = c("Date","Jour","Tair MF (°C)","Campagnes","Enqueteurs","Durée (min.)","Observations","Personnes","Age","Hommes (%)","Femmes (%)"),
    align=rep('lcccccccccc'),
    caption = "Situations statiques, résumé par journée.") %>%
  kable_styling(bootstrap_options = c("striped","hover","bordered"), full_width = F, html_font = "Times New Roman") %>%
  column_spec(1, width = "7em", bold = T) %>%
  as_image(file = here("outcomes","obs_resume_jour_s.jpg"), zoom = 3)



bcs_sum_m %>%
  group_by(date) %>%
  summarise(
    jour = weekdays(first(date), abbreviate = T),
    tair_mf_m = mean(tair_mf),
    campagnes_n = n_distinct(survey_id),
    enqueteurs_n = mean(observers),    
    duree_m = mean(duration),
    observations_m = mean(observations),
    personnes_m = mean(nbp),
    age_m = mean(age_mean),
    hommes_p = mean(gender_male),
    femmes_p = mean(gender_female)
  ) %>%
  mutate_at(vars(campagnes_n,enqueteurs_n,observations_m,personnes_m), round, digits=0) %>%
  mutate_at(vars(tair_mf_m,duree_m,age_m), round, digits=1) %>%
  mutate_at(vars(hommes_p,femmes_p), round, digits=2) %>%
  kable(
    format = "html",
    col.names = c("Date","Jour","Tair MF (°C)","Campagnes","Enqueteurs","Durée (min.)","Observations","Personnes","Age","Hommes (%)","Femmes (%)"),
    align=rep('lcccccccccc'),
    caption = "Situations en mouvement, résumé par journée.") %>%
  kable_styling(bootstrap_options = c("striped","hover","bordered"), full_width = F, html_font = "Times New Roman") %>%
  column_spec(1, width = "7em", bold = T) %>%
  as_image(file = here("outcomes","obs_resume_jour_m.jpg"), zoom = 3)

NA
NA
NA

frequentation


plot_s =
df_s %>%
  group_by(survey_id) %>%
  summarise(
    date = as.character(first(date)),
    time = first(tc),
    ref = paste0(date," ",time),
    nbp = sum(row_total)
  ) %>%
  dplyr::select(-survey_id) %>%
  st_drop_geometry() %>%
  ggplot(aes(x = ref, y = nbp, fill = date)) +
    geom_col() +
    scale_fill_manual(values = wes_palette("Royal1", 8, type = "continuous")) +
  ylim(0,170)+
  labs(
    title = "Situations statiques",
    x = "",
    y = "frequentation (nb personnes)"
  ) +
  theme_linedraw() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1),
    legend.position = "none")


plot_m =
df_m %>%
  group_by(survey_id) %>%
  summarise(
    date = as.character(first(date)),
    time = first(tc),
    ref = paste0(date," ",time),
    nbp = sum(row_total)
  ) %>%
  dplyr::select(-survey_id) %>%
  st_drop_geometry() %>%
  ggplot(aes(x = ref, y = nbp, fill = date)) +
    geom_col() +
    scale_fill_manual(values = wes_palette("Royal1", 8, type = "continuous")) +
  ylim(0,170)+
  labs(
    title = "Situations en mouvement",
    x = "",
    y = ""
  ) +
  theme_linedraw() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1),
    legend.position = "none")

ggarrange(plot_s,plot_m)

ggsave(here("outcomes","obs_general_frequentation.jpg"), width = 3000, height = 1500, units = "px", dpi = 200)

df_s %>%
  group_by(survey_id,stay_time) %>%
  summarise(
    date = as.character(first(date)),
    time = first(tc),
    ref = paste0(date," ",time),
    nbp = sum(row_total)
  ) %>%
  st_drop_geometry() %>%
  dplyr::select(-survey_id) %>%
  drop_na(stay_time) %>%
  ggplot(aes(x = ref, y = nbp, fill = stay_time)) +
    geom_col() +
    scale_fill_manual(values = wes_palette("Royal1", 8, type = "continuous"),
                      limits = c("0_2min_short","3_6min_brief","7_12min_break","13_20min_long")) +
  ylim(0,170) +
  labs(
    title = "Situations statiques. Temps de séjour",
    x = "",
    y = ""
  ) +
  theme_linedraw() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
`summarise()` has grouped output by 'survey_id'. You can override using the `.groups` argument.Adding missing grouping variables: `survey_id`
ggsave(here("outcomes","obs_stat_s_temps.jpg"), width = 2000, height = 1500, units = "px", dpi = 200)




df_s %>%
  group_by(survey_id,activity) %>%
  summarise(
    date = as.character(first(date)),
    time = first(tc),
    ref = paste0(date," ",time),
    nbp = sum(row_total)
  ) %>%
  st_drop_geometry() %>%
  dplyr::select(-survey_id) %>%
  drop_na(activity) %>%
  ggplot(aes(x = ref, y = nbp, fill = activity)) +
    geom_col() +
    scale_fill_manual(values = wes_palette("Royal1", 20, type = "continuous")) +
  ylim(0,170) +
  labs(
    title = "Situations statiques. Activité",
    x = "",
    y = ""
  ) +
  theme_linedraw() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
`summarise()` has grouped output by 'survey_id'. You can override using the `.groups` argument.Adding missing grouping variables: `survey_id`
ggsave(here("outcomes","obs_stat_s_activite.jpg"), width = 2000, height = 1500, units = "px", dpi = 200)


df_s %>%
  group_by(survey_id,posture) %>%
  summarise(
    date = as.character(first(date)),
    time = first(tc),
    ref = paste0(date," ",time),
    nbp = sum(row_total)
  ) %>%
  st_drop_geometry() %>%
  dplyr::select(-survey_id) %>%
  drop_na(posture) %>%
  ggplot(aes(x = ref, y = nbp, fill = posture)) +
    geom_col() +
    scale_fill_manual(values = wes_palette("Royal1", 8, type = "continuous")) +
  ylim(0,170) +
  labs(
    title = "Situations statiques. Posture",
    x = "",
    y = ""
  ) +
  theme_linedraw() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
`summarise()` has grouped output by 'survey_id'. You can override using the `.groups` argument.Adding missing grouping variables: `survey_id`
ggsave(here("outcomes","obs_stat_s_posture.jpg"), width = 2000, height = 1500, units = "px", dpi = 200)

Plots

Single observations

bck +
#ggplot()+
  geom_sf(data = m, lwd = 0.4, col = "black", alpha = 0.1)+
  scale_fill_manual(values = wes_palette("Zissou1", 2, type = "discrete")) +
  geom_sf(data = s, alpha = 0.5, col = "black", shape = 3, aes(size = row_total/2))+
  geom_sf(data = map_tree$osm_points, size = 1, col = "#4A6C6F") +
  geom_sf(data = map_building_civic$osm_polygons, col = "grey25", fill = "grey25") +
  geom_sf(data = st_transform(buildings, 4326), col = "grey25", fill = "grey25")+
  xlim(bbox_4326[["xmin"]]+0.0008,bbox_4326[["xmax"]]-0.0003)+
  ylim(bbox_4326[["ymin"]]+0.0005,bbox_4326[["ymax"]]-0.0003)+
  theme_carto+
  theme(legend.position = "none")

ggsave(here("outcomes","obs_general.jpg"), width = 3000, height = 2000, units = "px", dpi = 200)



bck_atlas +
#ggplot()+
  geom_sf(data = m, lwd = 0.4, col = "red", alpha = 0.1)+
  geom_sf(data = s, alpha = 0.5, col = "red", shape = 3, aes(size = row_total/3))+
  #geom_sf(data = map_tree$osm_points, size = 1, col = "#4A6C6F") +
  geom_sf(data = map_building_civic$osm_polygons, col = "grey80", fill = "grey80") +
  geom_sf(data = st_transform(buildings, 4326), col = "grey80", fill = "grey80")+
  xlim(bbox_4326[["xmin"]]+0.001,bbox_4326[["xmax"]]-0.0005)+
  ylim(bbox_4326[["ymin"]]+0.0007,bbox_4326[["ymax"]]-0.0004)+
  theme_carto+
  theme(legend.position = "none")+
  facet_grid(
    rows = vars(tc),
    cols = vars(date)
  )

ggsave(here("outcomes","obs_general_atlas.jpg"), width = 5000, height = 3000, units = "px", dpi = 200)



bck_atlas +
#ggplot()+
  geom_sf(data = m, lwd = 0.4, col = "red", alpha = 0.1)+
  geom_sf(data = s, alpha = 0.5, col = "red", shape = 3, aes(size = row_total/3))+
  #geom_sf(data = map_tree$osm_points, size = 1, col = "#4A6C6F") +
  geom_sf(data = map_building_civic$osm_polygons, col = "grey80", fill = "grey80") +
  geom_sf(data = st_transform(buildings, 4326), col = "grey80", fill = "grey80")+
  xlim(bbox_4326[["xmin"]]+0.001,bbox_4326[["xmax"]]-0.0005)+
  ylim(bbox_4326[["ymin"]]+0.0007,bbox_4326[["ymax"]]-0.0004)+
  theme_carto+
  theme(legend.position = "none")+
  facet_wrap(~tc,ncol = 4)

ggsave(here("outcomes","obs_general_atlas_heure.jpg"), width = 5000, height = 3000, units = "px", dpi = 200)



bck_atlas +
#ggplot()+
  geom_sf(data = m, lwd = 0.4, col = "red", alpha = 0.1)+
  geom_sf(data = s, alpha = 0.5, col = "red", shape = 3, aes(size = row_total/3))+
  #geom_sf(data = map_tree$osm_points, size = 1, col = "#4A6C6F") +
  geom_sf(data = map_building_civic$osm_polygons, col = "grey80", fill = "grey80") +
  geom_sf(data = st_transform(buildings, 4326), col = "grey80", fill = "grey80")+
  xlim(bbox_4326[["xmin"]]+0.001,bbox_4326[["xmax"]]-0.0005)+
  ylim(bbox_4326[["ymin"]]+0.0007,bbox_4326[["ymax"]]-0.0004)+
  theme_carto+
  theme(legend.position = "none")+
  facet_wrap(~date,ncol = 4)

ggsave(here("outcomes","obs_general_atlas_date.jpg"), width = 5000, height = 3000, units = "px", dpi = 200)

Hexbins by id & fileid

#Leaflet

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBMaWJyYXJpZXMKCmBgYHtyfQoKbGlicmFyeShoZXJlKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShzZikKbGlicmFyeShkYXRhLnRhYmxlKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkocmFzdGVyKQpsaWJyYXJ5KHByaXNtYXRpYykKbGlicmFyeShhcnVsZXNDQkEpCmxpYnJhcnkodGliYmxlKQpsaWJyYXJ5KG9zbWRhdGEpCmxpYnJhcnkod2VzYW5kZXJzb24pCmxpYnJhcnkoZ2dwdWJyKQpsaWJyYXJ5KGthYmxlRXh0cmEpCmxpYnJhcnkobWFnaWNrKQoKYGBgCgoKIyBPYnNlcnZhdGlvbiBkYXRhCmBgYHtyfQoKZmlsZW5hbWVzIDwtIGxpc3QuZmlsZXMoaGVyZSgic291cmNlIikscGF0dGVybj0iKi5ncGtnJCIpCgpsYXllcnNfcyA9IGMoIjA5aDMwX3N0YXlpbmciLCIxMmgzMF9zdGF5aW5nIiwiMTVoMzBfc3RheWluZyIsIjE4aDMwX3N0YXlpbmciKQpsYXllcnNfbSA9IGMoIjA5aDMwX21vdmluZyIsIjEyaDMwX21vdmluZyIsIjE1aDMwX21vdmluZyIsIjE4aDMwX21vdmluZyIpCgpsaXN0X20gPSBsaXN0KCkKbGlzdF9zID0gbGlzdCgpCgpmb3IgKGkgaW4gZmlsZW5hbWVzKSB7CgpmaWxlbmFtZSA9IGkgIAogIApmb3IgKGogaW4gbGF5ZXJzX3MpIHsKZGYgPSBzdF9yZWFkKGhlcmUoInNvdXJjZSIsZmlsZW5hbWUpLGopCmRmJGZpbGVpZCA9IGZpbGVuYW1lCmRmJGxheWVyID0gagpkZiA9IGRmICU+JSBkcGx5cjo6c2VsZWN0KC1QaG90bywtbW9kZSwtcm93LC1pZCkKbGlzdF9zW1tsZW5ndGgobGlzdF9zKSsxXV09ZGYKcm0oZGYpCn0KCmZvciAoaiBpbiBsYXllcnNfbSkgewpkZiA9IHN0X3JlYWQoaGVyZSgic291cmNlIixmaWxlbmFtZSksaikKZGYkZmlsZWlkID0gcGFzdGUwKGZpbGVuYW1lLGopCmRmJGZpbGVpZCA9IGZpbGVuYW1lCmRmJGxheWVyID0gagpkZiA9IGRmICU+JSBkcGx5cjo6c2VsZWN0KC1EaXJlY3Rpb24sLVBob3RvKQpsaXN0X21bW2xlbmd0aChsaXN0X20pKzFdXT1kZgpybShkZikKfQoKcm0oZmlsZW5hbWUpCgp9CgpkZl9zID0gcmJpbmRsaXN0KGxpc3Rfcyx1c2UubmFtZXMgPSBGQUxTRSkgJT4lIGFzLmRhdGEuZnJhbWUoKSAlPiUgc3RfYXNfc2YoKQpkZl9zID0gZGZfcyAlPiUgcmVuYW1lX3dpdGgofiBnc3ViKCIuIiwgIl8iLCAueCwgZml4ZWQgPSBUUlVFKSkKZGZfcyA9IGRmX3NbIShpcy5uYShkZl9zJGFjdGl2aXR5KSksIF0KZGZfcyAlPiUgZ2dwbG90KCkgKyBnZW9tX3NmKCkKCmRmX20gPSByYmluZGxpc3QobGlzdF9tLHVzZS5uYW1lcyA9IEZBTFNFKSAlPiUgYXMuZGF0YS5mcmFtZSgpICU+JSBzdF9hc19zZigpCmRmX20gPSBkZl9tICU+JSByZW5hbWVfd2l0aCh+IGdzdWIoIi4iLCAiXyIsIC54LCBmaXhlZCA9IFRSVUUpKQpkZl9tID0gZGZfbVshKGlzLm5hKGRmX20kbW91dmVtZW50KSksIF0KZGZfbSAlPiUgZ2dwbG90KCkgKyBnZW9tX3NmKCkKCgpgYGAKCgojIyBJRHMKYGBge3J9Cgojc3VydmV5X2lkCmRmX3Mkc3VydmV5X2lkID0KICBwYXN0ZTAoCiAgc3RyX3NwbGl0X2koZGZfcyRmaWxlaWQsIl8iLDEpLCJfIiwKICBzdHJfc3BsaXRfaShkZl9zJGZpbGVpZCwiXyIsMiksIl8iLAogIHN0cl9zcGxpdF9pKGRmX3MkZmlsZWlkLCJfIiw0KSwiXyIsCiAgZ3N1YigiaCIsIiIsc3RyX3NwbGl0X2koZGZfcyRsYXllciwiXyIsMSkpLAogICIwMCIpCgpkZl9tJHN1cnZleV9pZCA9CiAgcGFzdGUwKAogIHN0cl9zcGxpdF9pKGRmX20kZmlsZWlkLCJfIiwxKSwiXyIsCiAgc3RyX3NwbGl0X2koZGZfbSRmaWxlaWQsIl8iLDIpLCJfIiwKICBzdHJfc3BsaXRfaShkZl9tJGZpbGVpZCwiXyIsNCksIl8iLAogIGdzdWIoImgiLCIiLHN0cl9zcGxpdF9pKGRmX20kbGF5ZXIsIl8iLDEpKSwKICAiMDAiKQoKI29ic2VydmVyX2lkCmRmX3Mkb2JzZXJ2ZXIgPQogIGdzdWIoIi5ncGtnIiwiIixzdHJfc3BsaXRfaShkZl9zJGZpbGVpZCwiXyIsNSkpCgpkZl9tJG9ic2VydmVyID0KICBnc3ViKCIuZ3BrZyIsIiIsc3RyX3NwbGl0X2koZGZfbSRmaWxlaWQsIl8iLDUpKQoKIyByb3dfaWQKZGZfcyRyb3dfaWQgPC0gcGFzdGUoZGZfcyRzdXJ2ZXlfaWQsIGF2ZShkZl9zJHRpbWVzdGFtcCxkZl9zJHN1cnZleV9pZCwgRlVOID0gc2VxX2Fsb25nKSwgc2VwPSJfIikKZGZfbSRyb3dfaWQgPC0gcGFzdGUoZGZfbSRzdXJ2ZXlfaWQsIGF2ZShkZl9tJHRpbWVzdGFtcCxkZl9tJHN1cnZleV9pZCwgRlVOID0gc2VxX2Fsb25nKSwgc2VwPSJfIikKCiN0YwpkZl9zJHRjID0gZ3N1YigiaCIsIjoiLHN0cl9zcGxpdF9pKGRmX3MkbGF5ZXIsIl8iLDEpKQpkZl9tJHRjID0gZ3N1YigiaCIsIjoiLHN0cl9zcGxpdF9pKGRmX20kbGF5ZXIsIl8iLDEpKQoKYGBgCgojIyBNZWFucyAmIHRvdGFscwpgYGB7cn0KCiMgUm93X3RvdGFsCmRmX3Mkcm93X3RvdGFsID0gZGZfcyRnZW5kZXJfbWFsZStkZl9zJGdlbmRlcl9mZW1hbGUKCmRmX3MkZ2VuZGVyX3Vua25vd24gPSAKICBpZmVsc2UoCiAgICBkZl9zJHJvd190b3RhbCA9PSAwLAogICAgZGZfcyRhZ2VfMF8xNCtkZl9zJGFnZV8xNV8yNCtkZl9zJGFnZV8yNV80NCtkZl9zJGFnZV80NV82NCtkZl9zJGFnZV82NV83NCtkZl9zJGFnZV83NXAsCiAgICBkZl9zJGdlbmRlcl91bmtub3duCiAgICApCgpkZl9zJHJvd190b3RhbCA9IAogIGlmZWxzZSgKICAgIGRmX3Mkcm93X3RvdGFsID09IDAsCiAgICBkZl9zJGFnZV8wXzE0K2RmX3MkYWdlXzE1XzI0K2RmX3MkYWdlXzI1XzQ0K2RmX3MkYWdlXzQ1XzY0K2RmX3MkYWdlXzY1Xzc0K2RmX3MkYWdlXzc1cCwKICAgIGRmX3Mkcm93X3RvdGFsCiAgICApCgpkZl9zID0gZGZfcyAlPiUgZmlsdGVyKHJvd190b3RhbCAhPSAwKQpkZl9zID0gZGZfcyAlPiUgZHJvcF9uYShhY3Rpdml0eSkKICAKZGZfbSRyb3dfdG90YWwgPC0gZGZfbSRnZW5kZXJfbWFsZStkZl9tJGdlbmRlcl9mZW1hbGUKCmRmX20kZ2VuZGVyX3Vua25vd24gPSAKICBpZmVsc2UoCiAgICBkZl9tJHJvd190b3RhbCA9PSAwLAogICAgZGZfbSRhZ2VfMF8xNCtkZl9tJGFnZV8xNV8yNCtkZl9tJGFnZV8yNV80NCtkZl9tJGFnZV80NV82NCtkZl9tJGFnZV82NV83NCtkZl9tJGFnZV83NXAsCiAgICBkZl9tJGdlbmRlcl91bmtub3duCiAgICApCgpkZl9tJHJvd190b3RhbCA9IAogIGlmZWxzZSgKICAgIGRmX20kcm93X3RvdGFsID09IDAsCiAgICBkZl9tJGFnZV8wXzE0K2RmX20kYWdlXzE1XzI0K2RmX20kYWdlXzI1XzQ0K2RmX20kYWdlXzQ1XzY0K2RmX20kYWdlXzY1Xzc0K2RmX20kYWdlXzc1cCwKICAgIGRmX20kcm93X3RvdGFsCiAgICApCgpkZl9tID0gZGZfbSAlPiUgZmlsdGVyKHJvd190b3RhbCAhPSAwKQpkZl9tID0gZGZfbSAlPiUgZHJvcF9uYShtb3V2ZW1lbnQpCgoKIyBNZWFuIGFnZSBwZXIgZ3JvdXAKZGZfcyRhZ2VfbWVhbiA8LSByb3VuZCgoKGRmX3MkYWdlXzBfMTQqNykrKGRmX3MkYWdlXzE1XzI0KjE5LjUpKyhkZl9zJGFnZV8yNV80NCozNC41KSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGZfcyRhZ2VfNDVfNjQqNTQuNSkrKGRmX3MkYWdlXzY1Xzc0KjY5LjUpKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZl9zJGFnZV83NXAqODApKS9kZl9zJHJvd190b3RhbCxkaWdpdHMgPSAxKQoKZGZfbSRhZ2VfbWVhbiA8LSByb3VuZCgoKGRmX20kYWdlXzBfMTQqNykrKGRmX20kYWdlXzE1XzI0KjE5LjUpKyhkZl9tJGFnZV8yNV80NCozNC41KSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGZfbSRhZ2VfNDVfNjQqNTQuNSkrKGRmX20kYWdlXzY1Xzc0KjY5LjUpKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZl9tJGFnZV83NXAqODApKS9kZl9tJHJvd190b3RhbCxkaWdpdHMgPSAxKQoKYGBgCgoKIyMgU2VwYXJhdGluZyBjb2x1bW5zIG9mIHRpbWUgJiBkYXRlIGZyb20gdGltZXN0YW1wCmBgYHtyfQoKZGZfcyRkYXRlID0gYXMuRGF0ZShhcy5QT1NJWGN0KGFzLm51bWVyaWMoZGZfcyR0aW1lc3RhbXApLzEwMDAsIG9yaWdpbj0iMTk3MC0wMS0wMSIpKQpkZl9tJGRhdGUgPSBhcy5EYXRlKGFzLlBPU0lYY3QoYXMubnVtZXJpYyhkZl9tJHRpbWVzdGFtcCkvMTAwMCwgb3JpZ2luPSIxOTcwLTAxLTAxIikpCgpkZl9zJHRpbWUgPQogIGZvcm1hdCgKICAgIGFzLlBPU0lYY3QoYXMubnVtZXJpYyhkZl9zJHRpbWVzdGFtcCkvMTAwMCwgb3JpZ2luPSIxOTcwLTAxLTAxIiwgdHogPSAiRXVyb3BlL0JlcmxpbiIpLAogICAgZm9ybWF0ID0gIiVIOiVNOiVTIikKCmRmX20kdGltZSA9CiAgZm9ybWF0KAogICAgYXMuUE9TSVhjdChhcy5udW1lcmljKGRmX20kdGltZXN0YW1wKS8xMDAwLCBvcmlnaW49IjE5NzAtMDEtMDEiLCB0eiA9ICJFdXJvcGUvQmVybGluIiksCiAgICBmb3JtYXQgPSAiJUg6JU06JVMiKQoKYGBgCgoKIyMgQWRkaW5nIGNvb3JkaW5hdGVzIFdHUzg0CmBgYHtyfQoKI2NvbnZlcnNpb24gb2YgcG9pbnRzIGludG8gc3BhdGlhbCBmZWF0dXJlIG9iamVjdCAKZGZfc19sYjkzIDwtIHN0X2FzX3NmKGRmX3MsIGNvb3JkcyA9IGMoIlhfbGI5MyIsICJZX2xiOTMiKSwgY3JzID0gMjE1NCwgYWdyID0gImNvbnN0YW50IiwgcmVtb3ZlID0gRkFMU0UpCiAgCiNjb252ZXJzaW9uIG9mIExhbWJlcnQ5MyBjb29yZGluYXRlcyBpbnRvIHBzZXVkbyBtZXJjYXRvciAoV0dTODQsIEVQU2cgMzg1NykgZm9yIGtlcGxlci5nbApkZl9zX3dnczg0IDwtIHN0X3RyYW5zZm9ybShkZl9zX2xiOTMsIDQzMjYpCiAgCiNleHRyYWN0aW5nIFggYW5kIFkgY29vcmRpbmF0ZXMgZnJvbSBnZW9tZXRyeQpkZl9zX3h5X3dnczg0IDwtIHN0X2Nvb3JkaW5hdGVzKGRmX3Nfd2dzODQpCiAgCiNyZXBsYWNpbmcgbG9uZ2l0dWRlIGFuZCBsYXRpdHVkZSBieSBYIGFuZCBZIHJlc3BlY3RpdmVseQpkZl9zJFhfd2dzODQgPC0gZGZfc194eV93Z3M4NFssMV0KZGZfcyRZX3dnczg0IDwtIGRmX3NfeHlfd2dzODRbLDJdCgpgYGAKCiMjIFJlb3JkZXIgZGF0YWZyYW1lCmBgYHtyfQoKZGZfcyA9IGRmX3NbLGMoCiAgInN1cnZleV9pZCIsInJvd19pZCIsCiAgInRpbWVzdGFtcCIsImRhdGUiLCJ0aW1lIiwidGMiLAogICJYX2xiOTMiLCJZX2xiOTMiLCJYX3dnczg0IiwiWV93Z3M4NCIsCiAgInJvd190b3RhbCIsImdlbmRlcl9tYWxlIiwiZ2VuZGVyX2ZlbWFsZSIsImdlbmRlcl91bmtub3duIiwKICAiYWdlX21lYW4iLCJhZ2VfMF8xNCIsICJhZ2VfMTVfMjQiLCJhZ2VfMjVfNDQiLCJhZ2VfNDVfNjQiLCJhZ2VfNjVfNzQiLCJhZ2VfNzVwIiwKICAicG9zdHVyZSIsImludGVyYWN0aW9uIiwiY2xvdGhpbmciLCJleHBvc3VyZSIsImFjdGl2aXR5Iiwic3RheV90aW1lIiwKICAib2JzZXJ2ZXIiLCJsYXllciIsImZpbGVpZCIsImdlb20iKV0KCmRmX20gPSBkZl9tWyxjKAogICJzdXJ2ZXlfaWQiLCJyb3dfaWQiLAogICJ0aW1lc3RhbXAiLCJkYXRlIiwidGltZSIsInRjIiwKICAicm93X3RvdGFsIiwiZ2VuZGVyX21hbGUiLCJnZW5kZXJfZmVtYWxlIiwiZ2VuZGVyX3Vua25vd24iLAogICJhZ2VfbWVhbiIsImFnZV8wXzE0IiwgImFnZV8xNV8yNCIsImFnZV8yNV80NCIsImFnZV80NV82NCIsImFnZV82NV83NCIsImFnZV83NXAiLAogICJpbnRlcmFjdGlvbiIsImNsb3RoaW5nIiwiZXhwb3N1cmUiLCJtb3V2ZW1lbnQiLAogICJvYnNlcnZlciIsImxheWVyIiwiZmlsZWlkIiwiZ2VvbSIpXQoKYGBgCgoKIyMgY2xlYW4KYGBge3J9CgpybShkZl9zX2xiOTMpCnJtKGRmX3Nfd2dzODQpCnJtKGRmX3NfeHlfd2dzODQpCnJtKGxpc3RfcykKcm0obGlzdF9tKQoKYGBgCgoKIyMgQ1JTIGNvb3JkaW5hdGVzIGFuZCBkZWZpbml0aW9uCmBgYHtyfQoKZGZfc18yMTU0ID0gIGRmX3MKZGZfbV8yMTU0ID0gIGRmX20KCmRmX3NfNDMyNiA9ICBzdF90cmFuc2Zvcm0oZGZfcywgNDMyNikKZGZfbV80MzI2ID0gIHN0X3RyYW5zZm9ybShkZl9tLCA0MzI2KQoKIyBkZWZpbmllIHRoZSBDUlMgdG8gdXNlIGluIHRoZSBzdWJzZXF1ZW50IHNjcmlwdHMKZGZfcyA9IGRmX3NfNDMyNgpkZl9tID0gZGZfbV80MzI2CgpgYGAKCgojIyBFeHBvcnQgLmdwa2cgZmlsZXMKYGBge3J9CgpzdF93cml0ZShkZl9zXzIxNTQsIAogICAgICAgICBkc249aGVyZSgib3V0Y29tZXMiLCJvYnNfMjE1NC5ncGtnIiksCiAgICAgICAgIGxheWVyPSdzdGF5aW5nJywKICAgICAgICAgYXBwZW5kPUZBTFNFLAogICAgICAgICBsYXllcl9vcHRpb25zID0gIk9WRVJXUklURT1ZRVMiKQoKc3Rfd3JpdGUoZGZfc180MzI2LCAKICAgICAgICAgZHNuPWhlcmUoIm91dGNvbWVzIiwib2JzXzQzMjYuZ3BrZyIpLAogICAgICAgICBsYXllcj0nc3RheWluZycsCiAgICAgICAgIGFwcGVuZD1GQUxTRSwKICAgICAgICAgbGF5ZXJfb3B0aW9ucyA9ICJPVkVSV1JJVEU9WUVTIikKCnN0X3dyaXRlKGRmX21fMjE1NCwgCiAgICAgICAgIGRzbj1oZXJlKCJvdXRjb21lcyIsIm9ic18yMTU0Lmdwa2ciKSwKICAgICAgICAgbGF5ZXI9J21vdmluZycsCiAgICAgICAgIGFwcGVuZD1GQUxTRSwKICAgICAgICAgbGF5ZXJfb3B0aW9ucyA9ICJPVkVSV1JJVEU9WUVTIikKCnN0X3dyaXRlKGRmX21fNDMyNiwgCiAgICAgICAgIGRzbj1oZXJlKCJvdXRjb21lcyIsIm9ic180MzI2Lmdwa2ciKSwKICAgICAgICAgbGF5ZXI9J21vdmluZycsCiAgICAgICAgIGFwcGVuZD1GQUxTRSwKICAgICAgICAgbGF5ZXJfb3B0aW9ucyA9ICJPVkVSV1JJVEU9WUVTIikKCgpgYGAKCgpgYGB7cn0KCgoKYGBgCgoKCiMgUGxvdHMgcHJlcGFyYXRpb24KCiMjIGNvbnRleHQKYGBge3J9CgpidWlsZGluZ3MgPC0gcmVhZF9zZihoZXJlKCJzb3VyY2UiLCJnZW9tIiwiY29udGV4dC5ncGtnIiksImJ1aWxkaW5ncyIpCmJ1aWxkaW5ncyA9IHN0X3RyYW5zZm9ybShidWlsZGluZ3MsIDQzMjYpCnBsb3QoYnVpbGRpbmdzKQoKYm91bmRhcnkgPSByZWFkX3NmKGhlcmUoInNvdXJjZSIsImdlb20iLCJjb250ZXh0Lmdwa2ciKSwicGVyaW1ldHJlIikgJT4lIHNsaWNlKDEpCmJvdW5kYXJ5ID0gc3RfdHJhbnNmb3JtKGJvdW5kYXJ5LCA0MzI2KQpwbG90KGJvdW5kYXJ5KQoKem9uZXMgPSByZWFkX3NmKGhlcmUoInNvdXJjZSIsImdlb20iLCJjb250ZXh0Lmdwa2ciKSwiem9uZXMiKQp6b25lcyA9IHN0X3RyYW5zZm9ybSh6b25lcywgNDMyNikKcGxvdCh6b25lcykKCnRyYWNrID0gcmVhZF9zZihoZXJlKCJzb3VyY2UiLCJnZW9tIiwidHJhY2suZ3BrZyIpLCJ0cmFjazMiKQp0cmFjayA9IHN0X3RyYW5zZm9ybSh0cmFjaywgNDMyNikKcGxvdCh0cmFjaykKCmJhc2VtYXAgPSBzdGFjayhoZXJlKCJzb3VyY2UiLCJnZW9tIiwiYmFzZW1hcC50aWYiKSkKYmFzZW1hcF9kZiA9IGFzLmRhdGEuZnJhbWUoYmFzZW1hcCwgeHk9IFRSVUUpCmJhc2VtYXBfZGYgPSAKICBiYXNlbWFwX2RmICU+JSAKICByZW5hbWUocmVkID0gYmFzZW1hcF8xLCAjUmVuYW1lIGJhbmRzCiAgICAgICAgIGdyZWVuID0gYmFzZW1hcF8yLAogICAgICAgICBibHVlID0gYmFzZW1hcF8zKSAlPiUKICBmaWx0ZXIocmVkICE9IDApICNkcm9wIGRhdGEgdy9vIHJnYiBpbmZvcm1hdGlvbgoKbWFwID0gc3RhY2soaGVyZSgic291cmNlIiwiZ2VvbSIsIm1hcF9nZW9yZWZlcmVuY2VkX2NsaXAudGlmIikpCm1hcF9kZiA9IGFzLmRhdGEuZnJhbWUobWFwLCB4eT0gVFJVRSkKbWFwX2RmID0gCiAgbWFwX2RmICU+JSAKICByZW5hbWUocmVkID0gbWFwX2dlb3JlZmVyZW5jZWRfY2xpcF8xLCAjUmVuYW1lIGJhbmRzCiAgICAgICAgIGdyZWVuID0gbWFwX2dlb3JlZmVyZW5jZWRfY2xpcF8yLAogICAgICAgICBibHVlID0gbWFwX2dlb3JlZmVyZW5jZWRfY2xpcF8zKSAlPiUKICBmaWx0ZXIocmVkICE9IDApICNkcm9wIGRhdGEgdy9vIHJnYiBpbmZvcm1hdGlvbgoKYmJveCA9IHN0X2Jib3goc3RfYnVmZmVyKGJvdW5kYXJ5LGRpc3QgPSAwLCBqb2luU3R5bGU9IlJPVU5EIikpICNnbG9iYWwKCmBgYAoKCiMjIG9wZW5zdHJlZXRtYXBzIGRhdGEKYGBge3J9CgojIHRoZSBib3VuZGluZyBib3gsIGxpbWl0aW5nIHdoYXQgd2UgZmV0Y2gKI2Jib3hfb3NtID0KIyAgZGF0YS5mcmFtZShtaW4gPSBjKGJib3hbInhtaW4iXSxiYm94WyJ5bWluIl0pLAojICAgICAgICAgICAgIG1heCA9IGMoYmJveFsieG1heCJdLGJib3hbInltYXgiXSkpCiNyb3cubmFtZXMoYmJveF9vc20pID0gYygieCIsInkiKQojYmJveF9vc20gPSBhcy5tYXRyaXgoYmJveF9vc20pICAKCmJib3hfb3NtID0gCiAgZ2V0YmIoCiAgICBwbGFjZV9uYW1lID0gIk5hbnRlcyIsCiAgICBmZWF0dXJldHlwZSA9ICJjaXR5IgogICAgKQoKIyB0cmVlCm1hcF90cmVlIDwtIGJib3hfb3NtICU+JSAKICBvcHEoKSAlPiUgCiAgYWRkX29zbV9mZWF0dXJlKGtleSA9ICJuYXR1cmFsIiwgCiAgICAgICAgICAgICAgICAgIHZhbHVlID0gInRyZWUiKSAlPiUgCiAgb3NtZGF0YV9zZigpCgojIGphcmRpbnMKbWFwX2dhcmRlbiA8LSBiYm94X29zbSAlPiUgCiAgb3BxKCkgJT4lIAogIGFkZF9vc21fZmVhdHVyZShrZXkgPSAibGVpc3VyZSIsIAogICAgICAgICAgICAgICAgICB2YWx1ZSA9IGMoImdhcmRlbiIsInBhcmsiKSkgJT4lIAogIG9zbWRhdGFfc2YoKQoKIyBqYXJkaW5zCm1hcF9ncmFzcyA8LSBiYm94X29zbSAlPiUgCiAgb3BxKCkgJT4lIAogIGFkZF9vc21fZmVhdHVyZShrZXkgPSAibGFuZHVzZSIsIAogICAgICAgICAgICAgICAgICB2YWx1ZSA9ICJncmFzcyIpICU+JSAKICBvc21kYXRhX3NmKCkKCiMgZm9udGFpbmVzCm1hcF9lYXUgPC0gYmJveF9vc20gJT4lIAogIG9wcSgpICU+JSAKICBhZGRfb3NtX2ZlYXR1cmUoa2V5ID0gIm5hdHVyYWwiLCAKICAgICAgICAgICAgICAgICAgdmFsdWUgPSAid2F0ZXIiKSAlPiUgCiAgb3NtZGF0YV9zZigpCgojdHJhbXdheQptYXBfdHJhbSA8LSBiYm94X29zbSAlPiUgCiAgb3BxKCkgJT4lIAogIGFkZF9vc21fZmVhdHVyZShrZXkgPSAiZWxlY3RyaWZpZWQiLCAKICAgICAgICAgICAgICAgICAgdmFsdWUgPSAiY29udGFjdF9saW5lIikgJT4lIAogIG9zbWRhdGFfc2YoKQoKI3BsYXRmb3JtCm1hcF90cmFtX3BsYXRmb3JtIDwtIGJib3hfb3NtICU+JSAKICBvcHEoKSAlPiUgCiAgYWRkX29zbV9mZWF0dXJlKGtleSA9ICJwdWJsaWNfdHJhbnNwb3J0IiwgCiAgICAgICAgICAgICAgICAgIHZhbHVlID0gInBsYXRmb3JtIikgJT4lIAogIG9zbWRhdGFfc2YoKQoKI2J1aWxkaW5nIGNpdmljCm1hcF9idWlsZGluZ19jaXZpYyA8LSBiYm94X29zbSAlPiUgCiAgb3BxKCkgJT4lIAogIGFkZF9vc21fZmVhdHVyZShrZXkgPSAiYnVpbGRpbmciLCAKICAgICAgICAgICAgICAgICAgdmFsdWUgPSAiY2l2aWMiKSAlPiUgCiAgb3NtZGF0YV9zZigpCgpiYm94XzQzMjYgPSBzdF9iYm94KHN0X3RyYW5zZm9ybShzdF9hc19zZmMoYmJveCksIDQzMjYpKQoKCmdncGxvdCgpICsKICBnZW9tX3NmKGRhdGEgPSBtYXBfZ2FyZGVuJG9zbV9wb2x5Z29ucywgZmlsbCA9ICIjOURCRjlFIiwgY29sID0gIiM5REJGOUUiKSArCiAgZ2VvbV9zZihkYXRhID0gbWFwX2dyYXNzJG9zbV9wb2x5Z29ucywgZmlsbCA9ICIjOURCRjlFIiwgY29sID0gIiM5REJGOUUiKSArCiAgZ2VvbV9zZihkYXRhID0gbWFwX3RyYW0kb3NtX2xpbmVzLCBsd2QgPSAxLCBjb2xvdXIgPSAiZ3JheSIpICsKICBnZW9tX3NmKGRhdGEgPSBtYXBfdHJhbV9wbGF0Zm9ybSRvc21fcG9seWdvbnMsIGNvbCA9ICJncmF5IikgKwogIGdlb21fc2YoZGF0YSA9IG1hcF90cmVlJG9zbV9wb2ludHMsIHNpemUgPSAwLjUsIGNvbCA9ICIjNEE2QzZGIikgKwogIGdlb21fc2YoZGF0YSA9IG1hcF9lYXUkb3NtX3BvbHlnb25zLCBmaWxsID0gIiM5RERCRkYiLCBjb2wgPSAiIzlEREJGRiIpICsKICBnZW9tX3NmKGRhdGEgPSBzdF90cmFuc2Zvcm0oYnVpbGRpbmdzLCA0MzI2KSwgY29sID0gImJsYWNrIiwgZmlsbCA9ICJibGFjayIpICsKICBnZW9tX3NmKGRhdGEgPSBtYXBfYnVpbGRpbmdfY2l2aWMkb3NtX3BvbHlnb25zLCBjb2wgPSAiYmxhY2siLCBmaWxsID0gImJsYWNrIikgKwogIHhsaW0oYmJveF80MzI2W1sieG1pbiJdXSxiYm94XzQzMjZbWyJ4bWF4Il1dKSsKICB5bGltKGJib3hfNDMyNltbInltaW4iXV0sYmJveF80MzI2W1sieW1heCJdXSkrCiAgdGhlbWVfYncoKQogIAogIApgYGAKCgojIyB0aGVtZQpgYGB7cn0KCnRoZW1lX2NhcnRvIDwtCiAgdGhlbWVfYncoKSArCiAgdGhlbWUoCiAgICAjYXhpcy5saW5lPWVsZW1lbnRfYmxhbmsoKSwKICAgIGF4aXMudGV4dC54PWVsZW1lbnRfYmxhbmsoKSwKICAgIGF4aXMudGV4dC55PWVsZW1lbnRfYmxhbmsoKSwKICAgIGF4aXMudGlja3M9ZWxlbWVudF9ibGFuaygpLAogICAgYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSwKICAgIGF4aXMudGl0bGUueT1lbGVtZW50X2JsYW5rKCksCiAgICAjbGVnZW5kLnBvc2l0aW9uPSJub25lIiwKICAgIHBhbmVsLmJhY2tncm91bmQ9ZWxlbWVudF9ibGFuaygpLAogICAgI3BhbmVsLmJvcmRlcj1lbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1ham9yPWVsZW1lbnRfYmxhbmsoKSwKICAgIHBhbmVsLmdyaWQubWlub3I9ZWxlbWVudF9ibGFuaygpLAogICAgcGxvdC5iYWNrZ3JvdW5kPWVsZW1lbnRfYmxhbmsoKSwKICAgIHN0cmlwLmJhY2tncm91bmQ9ZWxlbWVudF9yZWN0KGZpbGw9ImJsYWNrIiksCiAgICBzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG91ciA9ICd3aGl0ZScpCiAgICApCgpgYGAKCgojIyBiYWNrZ3JvdW5kIGxheWVyCmBgYHtyfQpiY2sgPQogIGdncGxvdCgpICsKICAgIGdlb21fc2YoZGF0YSA9IG1hcF9nYXJkZW4kb3NtX3BvbHlnb25zLCBmaWxsID0gIiM5REJGOUUiLCBjb2wgPSAiIzlEQkY5RSIpICsKICAgIGdlb21fc2YoZGF0YSA9IG1hcF9ncmFzcyRvc21fcG9seWdvbnMsIGZpbGwgPSAiIzlEQkY5RSIsIGNvbCA9ICIjOURCRjlFIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX3RyYW0kb3NtX2xpbmVzLCBsd2QgPSAxLCBjb2wgPSAiZ3JleTcwIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX3RyYW1fcGxhdGZvcm0kb3NtX3BvbHlnb25zLCBjb2wgPSAiZ3JleTcwIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX3RyZWUkb3NtX3BvaW50cywgc2l6ZSA9IDAuNSwgY29sID0gIiM0QTZDNkYiKSArCiAgICBnZW9tX3NmKGRhdGEgPSBtYXBfZWF1JG9zbV9wb2x5Z29ucywgZmlsbCA9ICIjOUREQkZGIiwgY29sID0gIiM5RERCRkYiKQoKYmNrX2F0bGFzID0KICBnZ3Bsb3QoKSArCiAgICBnZW9tX3NmKGRhdGEgPSBtYXBfZ2FyZGVuJG9zbV9wb2x5Z29ucywgZmlsbCA9ICJncmV5NzAiLCBjb2wgPSAiZ3JleTcwIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX2dyYXNzJG9zbV9wb2x5Z29ucywgZmlsbCA9ICJncmV5NzAiLCBjb2wgPSAiZ3JleTcwIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX3RyYW0kb3NtX2xpbmVzLCBsd2QgPSAxLCBjb2wgPSAiZ3JleTgwIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX3RyYW1fcGxhdGZvcm0kb3NtX3BvbHlnb25zLCBjb2wgPSAiZ3JleTgwIikgKwogICAgZ2VvbV9zZihkYXRhID0gbWFwX3RyZWUkb3NtX3BvaW50cywgc2l6ZSA9IDAuMiwgY29sID0gImdyZXkzMCIpICsKICAgIGdlb21fc2YoZGF0YSA9IG1hcF9lYXUkb3NtX3BvbHlnb25zLCBmaWxsID0gImdyZXk1MCIsIGNvbCA9ICJncmV5NTAiKQogIAojICBnZW9tX3Jhc3RlcigKIyAgICBkYXRhID0gYmFzZW1hcF9kZiwgYWVzKHggPSB4LCB5ID15KSwgZmlsbCA9IHJnYihyID0gYmFzZW1hcF9kZiRyZWQsIGcgPSBiYXNlbWFwX2RmJGdyZWVuLCBiID0gYmFzZW1hcF9kZiRibHVlLCBtYXhDb2xvclZhbHVlID0gMjU1KSwKIyAgICBzaG93LmxlZ2VuZCA9IEZBTFNFKSsKIyAgZ2VvbV9yYXN0ZXIoCiMgICAgZGF0YSA9IG1hcF9kZiwgYWVzKHggPSB4LCB5ID15KSwgZmlsbCA9IHJnYihyID0gbWFwX2RmJHJlZCwgZyA9IG1hcF9kZiRncmVlbiwgYiA9IG1hcF9kZiRibHVlLCBtYXhDb2xvclZhbHVlID0gMjU1KSwKIyAgICBzaG93LmxlZ2VuZCA9IEZBTFNFKQpgYGAKCgojIyBkYXRhZnJhbWVzIG5hbWluZwpgYGB7cn0KCm0gPSBkZl9tCnogPSB6b25lcwojbSA9IHN0X2ludGVyc2VjdGlvbihtLHopCnMgPSBkZl9zCiNzID0gc3RfaW50ZXJzZWN0aW9uKHMseikKCmBgYAoKCiMgU3RhdGlzdGlxdWUKCiMjIFJlc3VtZQpgYGB7cn0KCmJjc19zdW1fcyA9CmRmX3MgJT4lCiAgbXV0YXRlKAogICAgdGltZSA9IGFzLlBPU0lYY3QodGltZSxmb3JtYXQ9IiVIOiVNOiVTIiwgdHo9IkV1cm9wZS9QYXJpcyIpCiAgKSAlPiUKICBncm91cF9ieShzdXJ2ZXlfaWQpICU+JQogIHN1bW1hcmlzZSgKICAgIGRhdGUgPSBmaXJzdChkYXRlKSwKICAgIGhldXJlID0gZmlyc3QodGMpLAogICAgI3N0YXJ0ID0gZmlyc3QodGltZSksCiAgICAjZW5kID0gbGFzdCh0aW1lKSwKICAgIGR1cmF0aW9uID0gYXMubnVtZXJpYyhsYXN0KHRpbWUpLWZpcnN0KHRpbWUpKSwKICAgIG9ic2VydmVycyA9IG5fZGlzdGluY3Qob2JzZXJ2ZXIpLAogICAgb2JzZXJ2YXRpb25zID0gbigpLAogICAgbmJwID0gc3VtKHJvd190b3RhbCksCiAgICBhZ2VfbWVhbiA9IG1lYW4oYWdlX21lYW4pLAogICAgZ2VuZGVyX2ZlbWFsZSA9IHN1bShnZW5kZXJfZmVtYWxlKS9uYnAsCiAgICBnZW5kZXJfbWFsZSA9IHN1bShnZW5kZXJfbWFsZSkvbmJwCiAgICApICU+JQogIG11dGF0ZV9pZihpcy5udW1lcmljLCByb3VuZCwgZGlnaXRzPTEpICU+JQogIG11dGF0ZSgKICAgIHRhaXJfbWYgPSBjKDI0LjksMjkuMywyOS43LDI1LjAsICMxNC82LzIwMjMKICAgICAgICAgICAgICAgIDIwLjAsMjUuOSwyNS4yLDIxLjgsICMxNS82LzIwMjMKICAgICAgICAgICAgICAgIDI3LjIsMzAuMiwzMS43LDMwLjYsICMyNC82LzIwMjMKICAgICAgICAgICAgICAgIDIxLjQsMjUuMywyNi45LDI1LjUsICMxMC83LzIwMjMKICAgICAgICAgICAgICAgIDI1LjIsMjguMCwyNi4zLDIyLjEsICMxOC83LzIwMjMKICAgICAgICAgICAgICAgIDI0LjMsMjguOSwyOS45LDI3LjIsICMyMS84LzIwMjMKICAgICAgICAgICAgICAgIDI0LjAsMjguNSwzMS4wLDI4LjYsICMyMi84LzIwMjMKICAgICAgICAgICAgICAgIDIyLjcsMzAuNiwzNC42LDMxLjcgIzIzLzgvMjAyMwogICAgICAgICAgICAgICAgKQogICkgJT4lCiAgI2RwbHlyOjpzZWxlY3QoLXN1cnZleV9pZCkgJT4lCiAgc3RfZHJvcF9nZW9tZXRyeSgpCgoKYmNzX3N1bV9tID0KZGZfbSAlPiUKICBtdXRhdGUoCiAgICB0aW1lID0gYXMuUE9TSVhjdCh0aW1lLGZvcm1hdD0iJUg6JU06JVMiLCB0ej0iRXVyb3BlL1BhcmlzIikKICApICU+JQogIGdyb3VwX2J5KHN1cnZleV9pZCkgJT4lCiAgc3VtbWFyaXNlKAogICAgZGF0ZSA9IGZpcnN0KGRhdGUpLAogICAgaGV1cmUgPSBmaXJzdCh0YyksCiAgICAjc3RhcnQgPSBmaXJzdCh0aW1lKSwKICAgICNlbmQgPSBsYXN0KHRpbWUpLAogICAgZHVyYXRpb24gPSBhcy5udW1lcmljKGxhc3QodGltZSktZmlyc3QodGltZSkpLAogICAgb2JzZXJ2ZXJzID0gbl9kaXN0aW5jdChvYnNlcnZlciksCiAgICBvYnNlcnZhdGlvbnMgPSBuKCksCiAgICBuYnAgPSBzdW0ocm93X3RvdGFsKSwKICAgIGFnZV9tZWFuID0gbWVhbihhZ2VfbWVhbiksCiAgICBnZW5kZXJfZmVtYWxlID0gc3VtKGdlbmRlcl9mZW1hbGUpL25icCwKICAgIGdlbmRlcl9tYWxlID0gc3VtKGdlbmRlcl9tYWxlKS9uYnAKICAgICkgJT4lCiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kLCBkaWdpdHM9MSkgJT4lCiAgbXV0YXRlKAogICAgdGFpcl9tZiA9IGMoMjQuOSwyOS4zLDI5LjcsMjUuMCwgIzE0LzYvMjAyMwogICAgICAgICAgICAgICAgMjAuMCwyNS45LDI1LjIsMjEuOCwgIzE1LzYvMjAyMwogICAgICAgICAgICAgICAgMjcuMiwzMC4yLDMxLjcsMzAuNiwgIzI0LzYvMjAyMwogICAgICAgICAgICAgICAgMjEuNCwyNS4zLDI2LjksMjUuNSwgIzEwLzcvMjAyMwogICAgICAgICAgICAgICAgMjUuMiwyOC4wLDI2LjMsMjIuMSwgIzE4LzcvMjAyMwogICAgICAgICAgICAgICAgMjQuMywyOC45LDI5LjksMjcuMiwgIzIxLzgvMjAyMwogICAgICAgICAgICAgICAgMjQuMCwyOC41LDMxLjAsMjguNiwgIzIyLzgvMjAyMwogICAgICAgICAgICAgICAgMjIuNywzMC42LDM0LjYsMzEuNyAjMjMvOC8yMDIzCiAgICAgICAgICAgICAgICApCiAgKSAlPiUKICAjZHBseXI6OnNlbGVjdCgtc3VydmV5X2lkKSAlPiUKICBzdF9kcm9wX2dlb21ldHJ5KCkKCgpiY3Nfc3VtX3MgJT4lCiAgZ3JvdXBfYnkoZGF0ZSkgJT4lCiAgc3VtbWFyaXNlKAogICAgam91ciA9IHdlZWtkYXlzKGZpcnN0KGRhdGUpLCBhYmJyZXZpYXRlID0gVCksCiAgICB0YWlyX21mX20gPSBtZWFuKHRhaXJfbWYpLAogICAgY2FtcGFnbmVzX24gPSBuX2Rpc3RpbmN0KHN1cnZleV9pZCksCiAgICBlbnF1ZXRldXJzX24gPSBtZWFuKG9ic2VydmVycyksICAgIAogICAgZHVyZWVfbSA9IG1lYW4oZHVyYXRpb24pLAogICAgb2JzZXJ2YXRpb25zX20gPSBtZWFuKG9ic2VydmF0aW9ucyksCiAgICBwZXJzb25uZXNfbSA9IG1lYW4obmJwKSwKICAgIGFnZV9tID0gbWVhbihhZ2VfbWVhbiksCiAgICBob21tZXNfcCA9IG1lYW4oZ2VuZGVyX21hbGUpLAogICAgZmVtbWVzX3AgPSBtZWFuKGdlbmRlcl9mZW1hbGUpCiAgKSAlPiUKICBtdXRhdGVfYXQodmFycyhjYW1wYWduZXNfbixlbnF1ZXRldXJzX24sb2JzZXJ2YXRpb25zX20scGVyc29ubmVzX20pLCByb3VuZCwgZGlnaXRzPTApICU+JQogIG11dGF0ZV9hdCh2YXJzKHRhaXJfbWZfbSxkdXJlZV9tLGFnZV9tKSwgcm91bmQsIGRpZ2l0cz0xKSAlPiUKICBtdXRhdGVfYXQodmFycyhob21tZXNfcCxmZW1tZXNfcCksIHJvdW5kLCBkaWdpdHM9MikgJT4lCiAga2FibGUoCiAgICBmb3JtYXQgPSAiaHRtbCIsCiAgICBjb2wubmFtZXMgPSBjKCJEYXRlIiwiSm91ciIsIlRhaXIgTUYgKMKwQykiLCJDYW1wYWduZXMiLCJFbnF1ZXRldXJzIiwiRHVyw6llIChtaW4uKSIsIk9ic2VydmF0aW9ucyIsIlBlcnNvbm5lcyIsIkFnZSIsIkhvbW1lcyAoJSkiLCJGZW1tZXMgKCUpIiksCiAgICBhbGlnbj1yZXAoJ2xjY2NjY2NjY2NjJyksCiAgICBjYXB0aW9uID0gIlNpdHVhdGlvbnMgc3RhdGlxdWVzLCByw6lzdW3DqSBwYXIgam91cm7DqWUuIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCJob3ZlciIsImJvcmRlcmVkIiksIGZ1bGxfd2lkdGggPSBGLCBodG1sX2ZvbnQgPSAiVGltZXMgTmV3IFJvbWFuIikgJT4lCiAgY29sdW1uX3NwZWMoMSwgd2lkdGggPSAiN2VtIiwgYm9sZCA9IFQpICU+JQogIGFzX2ltYWdlKGZpbGUgPSBoZXJlKCJvdXRjb21lcyIsIm9ic19yZXN1bWVfam91cl9zLmpwZyIpLCB6b29tID0gMykKCgpiY3Nfc3VtX20gJT4lCiAgZ3JvdXBfYnkoZGF0ZSkgJT4lCiAgc3VtbWFyaXNlKAogICAgam91ciA9IHdlZWtkYXlzKGZpcnN0KGRhdGUpLCBhYmJyZXZpYXRlID0gVCksCiAgICB0YWlyX21mX20gPSBtZWFuKHRhaXJfbWYpLAogICAgY2FtcGFnbmVzX24gPSBuX2Rpc3RpbmN0KHN1cnZleV9pZCksCiAgICBlbnF1ZXRldXJzX24gPSBtZWFuKG9ic2VydmVycyksICAgIAogICAgZHVyZWVfbSA9IG1lYW4oZHVyYXRpb24pLAogICAgb2JzZXJ2YXRpb25zX20gPSBtZWFuKG9ic2VydmF0aW9ucyksCiAgICBwZXJzb25uZXNfbSA9IG1lYW4obmJwKSwKICAgIGFnZV9tID0gbWVhbihhZ2VfbWVhbiksCiAgICBob21tZXNfcCA9IG1lYW4oZ2VuZGVyX21hbGUpLAogICAgZmVtbWVzX3AgPSBtZWFuKGdlbmRlcl9mZW1hbGUpCiAgKSAlPiUKICBtdXRhdGVfYXQodmFycyhjYW1wYWduZXNfbixlbnF1ZXRldXJzX24sb2JzZXJ2YXRpb25zX20scGVyc29ubmVzX20pLCByb3VuZCwgZGlnaXRzPTApICU+JQogIG11dGF0ZV9hdCh2YXJzKHRhaXJfbWZfbSxkdXJlZV9tLGFnZV9tKSwgcm91bmQsIGRpZ2l0cz0xKSAlPiUKICBtdXRhdGVfYXQodmFycyhob21tZXNfcCxmZW1tZXNfcCksIHJvdW5kLCBkaWdpdHM9MikgJT4lCiAga2FibGUoCiAgICBmb3JtYXQgPSAiaHRtbCIsCiAgICBjb2wubmFtZXMgPSBjKCJEYXRlIiwiSm91ciIsIlRhaXIgTUYgKMKwQykiLCJDYW1wYWduZXMiLCJFbnF1ZXRldXJzIiwiRHVyw6llIChtaW4uKSIsIk9ic2VydmF0aW9ucyIsIlBlcnNvbm5lcyIsIkFnZSIsIkhvbW1lcyAoJSkiLCJGZW1tZXMgKCUpIiksCiAgICBhbGlnbj1yZXAoJ2xjY2NjY2NjY2NjJyksCiAgICBjYXB0aW9uID0gIlNpdHVhdGlvbnMgZW4gbW91dmVtZW50LCByw6lzdW3DqSBwYXIgam91cm7DqWUuIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCJob3ZlciIsImJvcmRlcmVkIiksIGZ1bGxfd2lkdGggPSBGLCBodG1sX2ZvbnQgPSAiVGltZXMgTmV3IFJvbWFuIikgJT4lCiAgY29sdW1uX3NwZWMoMSwgd2lkdGggPSAiN2VtIiwgYm9sZCA9IFQpICU+JQogIGFzX2ltYWdlKGZpbGUgPSBoZXJlKCJvdXRjb21lcyIsIm9ic19yZXN1bWVfam91cl9tLmpwZyIpLCB6b29tID0gMykKCgoKYGBgCgoKIyMgZnJlcXVlbnRhdGlvbgpgYGB7cn0KCnBsb3RfcyA9CmRmX3MgJT4lCiAgZ3JvdXBfYnkoc3VydmV5X2lkKSAlPiUKICBzdW1tYXJpc2UoCiAgICBkYXRlID0gYXMuY2hhcmFjdGVyKGZpcnN0KGRhdGUpKSwKICAgIHRpbWUgPSBmaXJzdCh0YyksCiAgICByZWYgPSBwYXN0ZTAoZGF0ZSwiICIsdGltZSksCiAgICBuYnAgPSBzdW0ocm93X3RvdGFsKQogICkgJT4lCiAgZHBseXI6OnNlbGVjdCgtc3VydmV5X2lkKSAlPiUKICBzdF9kcm9wX2dlb21ldHJ5KCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gcmVmLCB5ID0gbmJwLCBmaWxsID0gZGF0ZSkpICsKICAgIGdlb21fY29sKCkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gd2VzX3BhbGV0dGUoIlJveWFsMSIsIDgsIHR5cGUgPSAiY29udGludW91cyIpKSArCiAgeWxpbSgwLDE3MCkrCiAgbGFicygKICAgIHRpdGxlID0gIlNpdHVhdGlvbnMgc3RhdGlxdWVzIiwKICAgIHggPSAiIiwKICAgIHkgPSAiZnJlcXVlbnRhdGlvbiAobmIgcGVyc29ubmVzKSIKICApICsKICB0aGVtZV9saW5lZHJhdygpICsKICB0aGVtZSgKICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIHZqdXN0ID0gMC41LCBoanVzdD0xKSwKICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCgpwbG90X20gPQpkZl9tICU+JQogIGdyb3VwX2J5KHN1cnZleV9pZCkgJT4lCiAgc3VtbWFyaXNlKAogICAgZGF0ZSA9IGFzLmNoYXJhY3RlcihmaXJzdChkYXRlKSksCiAgICB0aW1lID0gZmlyc3QodGMpLAogICAgcmVmID0gcGFzdGUwKGRhdGUsIiAiLHRpbWUpLAogICAgbmJwID0gc3VtKHJvd190b3RhbCkKICApICU+JQogIGRwbHlyOjpzZWxlY3QoLXN1cnZleV9pZCkgJT4lCiAgc3RfZHJvcF9nZW9tZXRyeSgpICU+JQogIGdncGxvdChhZXMoeCA9IHJlZiwgeSA9IG5icCwgZmlsbCA9IGRhdGUpKSArCiAgICBnZW9tX2NvbCgpICsKICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHdlc19wYWxldHRlKCJSb3lhbDEiLCA4LCB0eXBlID0gImNvbnRpbnVvdXMiKSkgKwogIHlsaW0oMCwxNzApKwogIGxhYnMoCiAgICB0aXRsZSA9ICJTaXR1YXRpb25zIGVuIG1vdXZlbWVudCIsCiAgICB4ID0gIiIsCiAgICB5ID0gIiIKICApICsKICB0aGVtZV9saW5lZHJhdygpICsKICB0aGVtZSgKICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIHZqdXN0ID0gMC41LCBoanVzdD0xKSwKICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCmdnYXJyYW5nZShwbG90X3MscGxvdF9tKQoKZ2dzYXZlKGhlcmUoIm91dGNvbWVzIiwib2JzX2dlbmVyYWxfZnJlcXVlbnRhdGlvbi5qcGciKSwgd2lkdGggPSAzMDAwLCBoZWlnaHQgPSAxNTAwLCB1bml0cyA9ICJweCIsIGRwaSA9IDIwMCkKCmBgYAoKCmBgYHtyfQoKZGZfcyAlPiUKICBncm91cF9ieShzdXJ2ZXlfaWQsc3RheV90aW1lKSAlPiUKICBzdW1tYXJpc2UoCiAgICBkYXRlID0gYXMuY2hhcmFjdGVyKGZpcnN0KGRhdGUpKSwKICAgIHRpbWUgPSBmaXJzdCh0YyksCiAgICByZWYgPSBwYXN0ZTAoZGF0ZSwiICIsdGltZSksCiAgICBuYnAgPSBzdW0ocm93X3RvdGFsKQogICkgJT4lCiAgc3RfZHJvcF9nZW9tZXRyeSgpICU+JQogIGRwbHlyOjpzZWxlY3QoLXN1cnZleV9pZCkgJT4lCiAgZHJvcF9uYShzdGF5X3RpbWUpICU+JQogIGdncGxvdChhZXMoeCA9IHJlZiwgeSA9IG5icCwgZmlsbCA9IHN0YXlfdGltZSkpICsKICAgIGdlb21fY29sKCkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gd2VzX3BhbGV0dGUoIlJveWFsMSIsIDgsIHR5cGUgPSAiY29udGludW91cyIpLAogICAgICAgICAgICAgICAgICAgICAgbGltaXRzID0gYygiMF8ybWluX3Nob3J0IiwiM182bWluX2JyaWVmIiwiN18xMm1pbl9icmVhayIsIjEzXzIwbWluX2xvbmciKSkgKwogIHlsaW0oMCwxNzApICsKICBsYWJzKAogICAgdGl0bGUgPSAiU2l0dWF0aW9ucyBzdGF0aXF1ZXMuIFRlbXBzIGRlIHPDqWpvdXIiLAogICAgeCA9ICIiLAogICAgeSA9ICIiCiAgKSArCiAgdGhlbWVfbGluZWRyYXcoKSArCiAgdGhlbWUoCiAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCB2anVzdCA9IDAuNSwgaGp1c3Q9MSkpCgpnZ3NhdmUoaGVyZSgib3V0Y29tZXMiLCJvYnNfc3RhdF9zX3RlbXBzLmpwZyIpLCB3aWR0aCA9IDIwMDAsIGhlaWdodCA9IDE1MDAsIHVuaXRzID0gInB4IiwgZHBpID0gMjAwKQoKCgpkZl9zICU+JQogIGdyb3VwX2J5KHN1cnZleV9pZCxhY3Rpdml0eSkgJT4lCiAgc3VtbWFyaXNlKAogICAgZGF0ZSA9IGFzLmNoYXJhY3RlcihmaXJzdChkYXRlKSksCiAgICB0aW1lID0gZmlyc3QodGMpLAogICAgcmVmID0gcGFzdGUwKGRhdGUsIiAiLHRpbWUpLAogICAgbmJwID0gc3VtKHJvd190b3RhbCkKICApICU+JQogIHN0X2Ryb3BfZ2VvbWV0cnkoKSAlPiUKICBkcGx5cjo6c2VsZWN0KC1zdXJ2ZXlfaWQpICU+JQogIGRyb3BfbmEoYWN0aXZpdHkpICU+JQogIGdncGxvdChhZXMoeCA9IHJlZiwgeSA9IG5icCwgZmlsbCA9IGFjdGl2aXR5KSkgKwogICAgZ2VvbV9jb2woKSArCiAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSB3ZXNfcGFsZXR0ZSgiUm95YWwxIiwgMjAsIHR5cGUgPSAiY29udGludW91cyIpKSArCiAgeWxpbSgwLDE3MCkgKwogIGxhYnMoCiAgICB0aXRsZSA9ICJTaXR1YXRpb25zIHN0YXRpcXVlcy4gQWN0aXZpdMOpIiwKICAgIHggPSAiIiwKICAgIHkgPSAiIgogICkgKwogIHRoZW1lX2xpbmVkcmF3KCkgKwogIHRoZW1lKAogICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgdmp1c3QgPSAwLjUsIGhqdXN0PTEpKQoKZ2dzYXZlKGhlcmUoIm91dGNvbWVzIiwib2JzX3N0YXRfc19hY3Rpdml0ZS5qcGciKSwgd2lkdGggPSAyMDAwLCBoZWlnaHQgPSAxNTAwLCB1bml0cyA9ICJweCIsIGRwaSA9IDIwMCkKCmRmX3MgJT4lCiAgZ3JvdXBfYnkoc3VydmV5X2lkLHBvc3R1cmUpICU+JQogIHN1bW1hcmlzZSgKICAgIGRhdGUgPSBhcy5jaGFyYWN0ZXIoZmlyc3QoZGF0ZSkpLAogICAgdGltZSA9IGZpcnN0KHRjKSwKICAgIHJlZiA9IHBhc3RlMChkYXRlLCIgIix0aW1lKSwKICAgIG5icCA9IHN1bShyb3dfdG90YWwpCiAgKSAlPiUKICBzdF9kcm9wX2dlb21ldHJ5KCkgJT4lCiAgZHBseXI6OnNlbGVjdCgtc3VydmV5X2lkKSAlPiUKICBkcm9wX25hKHBvc3R1cmUpICU+JQogIGdncGxvdChhZXMoeCA9IHJlZiwgeSA9IG5icCwgZmlsbCA9IHBvc3R1cmUpKSArCiAgICBnZW9tX2NvbCgpICsKICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHdlc19wYWxldHRlKCJSb3lhbDEiLCA4LCB0eXBlID0gImNvbnRpbnVvdXMiKSkgKwogIHlsaW0oMCwxNzApICsKICBsYWJzKAogICAgdGl0bGUgPSAiU2l0dWF0aW9ucyBzdGF0aXF1ZXMuIFBvc3R1cmUiLAogICAgeCA9ICIiLAogICAgeSA9ICIiCiAgKSArCiAgdGhlbWVfbGluZWRyYXcoKSArCiAgdGhlbWUoCiAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCB2anVzdCA9IDAuNSwgaGp1c3Q9MSkpCgpnZ3NhdmUoaGVyZSgib3V0Y29tZXMiLCJvYnNfc3RhdF9zX3Bvc3R1cmUuanBnIiksIHdpZHRoID0gMjAwMCwgaGVpZ2h0ID0gMTUwMCwgdW5pdHMgPSAicHgiLCBkcGkgPSAyMDApCgpgYGAKCgojIFBsb3RzCgojIyBTaW5nbGUgb2JzZXJ2YXRpb25zCmBgYHtyfQpiY2sgKwojZ2dwbG90KCkrCiAgZ2VvbV9zZihkYXRhID0gbSwgbHdkID0gMC40LCBjb2wgPSAiYmxhY2siLCBhbHBoYSA9IDAuMSkrCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gd2VzX3BhbGV0dGUoIlppc3NvdTEiLCAyLCB0eXBlID0gImRpc2NyZXRlIikpICsKICBnZW9tX3NmKGRhdGEgPSBzLCBhbHBoYSA9IDAuNSwgY29sID0gImJsYWNrIiwgc2hhcGUgPSAzLCBhZXMoc2l6ZSA9IHJvd190b3RhbC8yKSkrCiAgZ2VvbV9zZihkYXRhID0gbWFwX3RyZWUkb3NtX3BvaW50cywgc2l6ZSA9IDEsIGNvbCA9ICIjNEE2QzZGIikgKwogIGdlb21fc2YoZGF0YSA9IG1hcF9idWlsZGluZ19jaXZpYyRvc21fcG9seWdvbnMsIGNvbCA9ICJncmV5MjUiLCBmaWxsID0gImdyZXkyNSIpICsKICBnZW9tX3NmKGRhdGEgPSBzdF90cmFuc2Zvcm0oYnVpbGRpbmdzLCA0MzI2KSwgY29sID0gImdyZXkyNSIsIGZpbGwgPSAiZ3JleTI1IikrCiAgeGxpbShiYm94XzQzMjZbWyJ4bWluIl1dKzAuMDAwOCxiYm94XzQzMjZbWyJ4bWF4Il1dLTAuMDAwMykrCiAgeWxpbShiYm94XzQzMjZbWyJ5bWluIl1dKzAuMDAwNSxiYm94XzQzMjZbWyJ5bWF4Il1dLTAuMDAwMykrCiAgdGhlbWVfY2FydG8rCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKZ2dzYXZlKGhlcmUoIm91dGNvbWVzIiwib2JzX2dlbmVyYWwuanBnIiksIHdpZHRoID0gMzAwMCwgaGVpZ2h0ID0gMjAwMCwgdW5pdHMgPSAicHgiLCBkcGkgPSAyMDApCgoKYmNrX2F0bGFzICsKI2dncGxvdCgpKwogIGdlb21fc2YoZGF0YSA9IG0sIGx3ZCA9IDAuNCwgY29sID0gInJlZCIsIGFscGhhID0gMC4xKSsKICBnZW9tX3NmKGRhdGEgPSBzLCBhbHBoYSA9IDAuNSwgY29sID0gInJlZCIsIHNoYXBlID0gMywgYWVzKHNpemUgPSByb3dfdG90YWwvMykpKwogICNnZW9tX3NmKGRhdGEgPSBtYXBfdHJlZSRvc21fcG9pbnRzLCBzaXplID0gMSwgY29sID0gIiM0QTZDNkYiKSArCiAgZ2VvbV9zZihkYXRhID0gbWFwX2J1aWxkaW5nX2NpdmljJG9zbV9wb2x5Z29ucywgY29sID0gImdyZXk4MCIsIGZpbGwgPSAiZ3JleTgwIikgKwogIGdlb21fc2YoZGF0YSA9IHN0X3RyYW5zZm9ybShidWlsZGluZ3MsIDQzMjYpLCBjb2wgPSAiZ3JleTgwIiwgZmlsbCA9ICJncmV5ODAiKSsKICB4bGltKGJib3hfNDMyNltbInhtaW4iXV0rMC4wMDEsYmJveF80MzI2W1sieG1heCJdXS0wLjAwMDUpKwogIHlsaW0oYmJveF80MzI2W1sieW1pbiJdXSswLjAwMDcsYmJveF80MzI2W1sieW1heCJdXS0wLjAwMDQpKwogIHRoZW1lX2NhcnRvKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgZmFjZXRfZ3JpZCgKICAgIHJvd3MgPSB2YXJzKHRjKSwKICAgIGNvbHMgPSB2YXJzKGRhdGUpCiAgKQoKZ2dzYXZlKGhlcmUoIm91dGNvbWVzIiwib2JzX2dlbmVyYWxfYXRsYXMuanBnIiksIHdpZHRoID0gNTAwMCwgaGVpZ2h0ID0gMzAwMCwgdW5pdHMgPSAicHgiLCBkcGkgPSAyMDApCgoKYmNrX2F0bGFzICsKI2dncGxvdCgpKwogIGdlb21fc2YoZGF0YSA9IG0sIGx3ZCA9IDAuNCwgY29sID0gInJlZCIsIGFscGhhID0gMC4xKSsKICBnZW9tX3NmKGRhdGEgPSBzLCBhbHBoYSA9IDAuNSwgY29sID0gInJlZCIsIHNoYXBlID0gMywgYWVzKHNpemUgPSByb3dfdG90YWwvMykpKwogICNnZW9tX3NmKGRhdGEgPSBtYXBfdHJlZSRvc21fcG9pbnRzLCBzaXplID0gMSwgY29sID0gIiM0QTZDNkYiKSArCiAgZ2VvbV9zZihkYXRhID0gbWFwX2J1aWxkaW5nX2NpdmljJG9zbV9wb2x5Z29ucywgY29sID0gImdyZXk4MCIsIGZpbGwgPSAiZ3JleTgwIikgKwogIGdlb21fc2YoZGF0YSA9IHN0X3RyYW5zZm9ybShidWlsZGluZ3MsIDQzMjYpLCBjb2wgPSAiZ3JleTgwIiwgZmlsbCA9ICJncmV5ODAiKSsKICB4bGltKGJib3hfNDMyNltbInhtaW4iXV0rMC4wMDEsYmJveF80MzI2W1sieG1heCJdXS0wLjAwMDUpKwogIHlsaW0oYmJveF80MzI2W1sieW1pbiJdXSswLjAwMDcsYmJveF80MzI2W1sieW1heCJdXS0wLjAwMDQpKwogIHRoZW1lX2NhcnRvKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgZmFjZXRfd3JhcCh+dGMsbmNvbCA9IDQpCgpnZ3NhdmUoaGVyZSgib3V0Y29tZXMiLCJvYnNfZ2VuZXJhbF9hdGxhc19oZXVyZS5qcGciKSwgd2lkdGggPSA1MDAwLCBoZWlnaHQgPSAzMDAwLCB1bml0cyA9ICJweCIsIGRwaSA9IDIwMCkKCgpiY2tfYXRsYXMgKwojZ2dwbG90KCkrCiAgZ2VvbV9zZihkYXRhID0gbSwgbHdkID0gMC40LCBjb2wgPSAicmVkIiwgYWxwaGEgPSAwLjEpKwogIGdlb21fc2YoZGF0YSA9IHMsIGFscGhhID0gMC41LCBjb2wgPSAicmVkIiwgc2hhcGUgPSAzLCBhZXMoc2l6ZSA9IHJvd190b3RhbC8zKSkrCiAgI2dlb21fc2YoZGF0YSA9IG1hcF90cmVlJG9zbV9wb2ludHMsIHNpemUgPSAxLCBjb2wgPSAiIzRBNkM2RiIpICsKICBnZW9tX3NmKGRhdGEgPSBtYXBfYnVpbGRpbmdfY2l2aWMkb3NtX3BvbHlnb25zLCBjb2wgPSAiZ3JleTgwIiwgZmlsbCA9ICJncmV5ODAiKSArCiAgZ2VvbV9zZihkYXRhID0gc3RfdHJhbnNmb3JtKGJ1aWxkaW5ncywgNDMyNiksIGNvbCA9ICJncmV5ODAiLCBmaWxsID0gImdyZXk4MCIpKwogIHhsaW0oYmJveF80MzI2W1sieG1pbiJdXSswLjAwMSxiYm94XzQzMjZbWyJ4bWF4Il1dLTAuMDAwNSkrCiAgeWxpbShiYm94XzQzMjZbWyJ5bWluIl1dKzAuMDAwNyxiYm94XzQzMjZbWyJ5bWF4Il1dLTAuMDAwNCkrCiAgdGhlbWVfY2FydG8rCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSsKICBmYWNldF93cmFwKH5kYXRlLG5jb2wgPSA0KQoKZ2dzYXZlKGhlcmUoIm91dGNvbWVzIiwib2JzX2dlbmVyYWxfYXRsYXNfZGF0ZS5qcGciKSwgd2lkdGggPSA1MDAwLCBoZWlnaHQgPSAzMDAwLCB1bml0cyA9ICJweCIsIGRwaSA9IDIwMCkKCmBgYAoKCgoKCgojIyBIZXhiaW5zIGJ5IGlkICYgZmlsZWlkCgpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQoKZ3JpZCA9IAogIHN0X21ha2VfZ3JpZCgKICAgIGJvdW5kYXJ5LAogICAgY2VsbHNpemUgPSA3LAogICAgc3F1YXJlID0gRkFMU0UpICU+JSAKICBzdF9zZigpICU+JSAKICBzdF9jYXN0ICU+JQogIG11dGF0ZSgKICAgIGlkID0gMTpuKCkpCgpncmlkID0gZ3JpZCAlPiUKICBtdXRhdGUoCiAgICBpbnQgPSBzdF9pbnRlcnNlY3RzKGdyaWQsYm91bmRhcnksIHNwYXJzZSA9IEYpCiAgICApICU+JQogIGZpbHRlcihpbnQgPT0gVCkgJT4lCiAgZHBseXI6OnNlbGVjdCgtaW50KQogIApwbG90KGdyaWQpCgoKaGV4YmluX3MgPQogIHN0X2pvaW4oCiAgICBncmlkLAogICAgZGZfcyAlPiUgZmlsdGVyKHJvd190b3RhbCAhPSAwKSwKICAgIGxlZnQgPSBGQUxTRSwKICAgIGpvaW4gPSBzdF9pbnRlcnNlY3RzKSAlPiUKICBncm91cF9ieShpZCxmaWxlaWQpICU+JQogIHN1bW1hcmlzZSgKICAgIG4gPSBuKCksCiAgICBkYXRlID0gZmlyc3QoZGF0ZSksCiAgICB0aW1lID0gZmlyc3QodGMpLAogICAgbmJwID0gc3VtKHJvd190b3RhbCksCiAgICBnZW5kZXJfbWFsZSA9IHN1bShnZW5kZXJfbWFsZSksCiAgICBnZW5kZXJfZmVtYWxlID0gc3VtKGdlbmRlcl9mZW1hbGUpKQoKaGV4YmluX20gPQogIHN0X2pvaW4oCiAgICBncmlkLAogICAgZGZfbSAlPiUgZmlsdGVyKHJvd190b3RhbCAhPSAwKSwKICAgIGxlZnQgPSBGQUxTRSwKICAgIGpvaW4gPSBzdF9pbnRlcnNlY3RzKSAlPiUKICBncm91cF9ieShpZCxmaWxlaWQpICU+JQogIHN1bW1hcmlzZSgKICAgIG4gPSBuKCksCiAgICBkYXRlID0gZmlyc3QoZGF0ZSksCiAgICB0aW1lID0gZmlyc3QodGMpLAogICAgbmJwID0gc3VtKHJvd190b3RhbCksCiAgICBnZW5kZXJfbWFsZSA9IHN1bShnZW5kZXJfbWFsZSksCiAgICBnZW5kZXJfZmVtYWxlID0gc3VtKGdlbmRlcl9mZW1hbGUpKQoKbV9oYiA9IGhleGJpbl9tCnNfaGIgPSBoZXhiaW5fcwpnX2hiID0gZ3JpZAoKYGBgCgoKYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KCmJjayArCiAgZ2VvbV9zZihkYXRhPXNfaGIsIGFlcyhmaWxsID0gbmJwKSxjb2xvciA9IE5BKSsKICBnZW9tX3NmKGRhdGE9Z19oYiwgY29sID0gYWxwaGEoIiM3NTc1NzUiLDAuMSksc2l6ZSA9IDAuMDEsIGZpbGwgPSBOQSkrCiAgc2NhbGVfZmlsbF9jb250aW51b3VzKHR5cGUgPSAidmlyaWRpcyIsZGlyZWN0aW9uID0gLTEpKwogIGdlb21fc2YoZGF0YSA9IG1hcF9idWlsZGluZ19jaXZpYyRvc21fcG9seWdvbnMsIGNvbCA9ICJncmV5MjUiLCBmaWxsID0gImdyZXkyNSIpICsKICBnZW9tX3NmKGRhdGEgPSBzdF90cmFuc2Zvcm0oYnVpbGRpbmdzLCA0MzI2KSwgY29sID0gImdyZXkyNSIsIGZpbGwgPSAiZ3JleTI1IikrCiAgeGxpbShiYm94XzQzMjZbWyJ4bWluIl1dLGJib3hfNDMyNltbInhtYXgiXV0pKwogIHlsaW0oYmJveF80MzI2W1sieW1pbiJdXSxiYm94XzQzMjZbWyJ5bWF4Il1dKSsKICB0aGVtZV9jYXJ0bysKICBmYWNldF9ncmlkKAogICAgcm93cyA9IHZhcnModGltZSksCiAgICBjb2xzID0gdmFycyhkYXRlKQogICkgKwogIGdndGl0bGUoIlNpdHVhdGlvbnMgc3RhdGlxdWVzIikKICAjdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJ0b3AiKQoKZ2dzYXZlKAogIGhlcmUoIm91dGNvbWVzIiwicGxvdF9vYnNfc3RheWluZ19hdGxhcy5qcGciKSwKICB3aWR0aCA9IDYwMDAsIGhlaWdodCA9IDQwMDAsIHVuaXRzID0gInB4IiwgZHBpID0gMjAwKQoKCmJjayArCiAgZ2VvbV9zZihkYXRhPW1faGIsIGFlcyhmaWxsID0gbmJwKSxjb2xvciA9IE5BKSsKICBnZW9tX3NmKGRhdGE9Z19oYiwgY29sID0gYWxwaGEoIiM3NTc1NzUiLDAuMSksc2l6ZSA9IDAuMDEsZmlsbCA9IE5BKSsKICBzY2FsZV9maWxsX2NvbnRpbnVvdXModHlwZSA9ICJ2aXJpZGlzIixkaXJlY3Rpb24gPSAtMSkrCiAgI3NjYWxlX2ZpbGxfZ3JhZGllbnQobG93ID0gIiNEN0U3RkUiLCBoaWdoID0gIiMwMjE5M0IiKSsKICBnZW9tX3NmKGRhdGEgPSBtYXBfYnVpbGRpbmdfY2l2aWMkb3NtX3BvbHlnb25zLCBjb2wgPSAiZ3JleTI1IiwgZmlsbCA9ICJncmV5MjUiKSArCiAgZ2VvbV9zZihkYXRhID0gc3RfdHJhbnNmb3JtKGJ1aWxkaW5ncywgNDMyNiksIGNvbCA9ICJncmV5MjUiLCBmaWxsID0gImdyZXkyNSIpKwogIHhsaW0oYmJveF80MzI2W1sieG1pbiJdXSxiYm94XzQzMjZbWyJ4bWF4Il1dKSsKICB5bGltKGJib3hfNDMyNltbInltaW4iXV0sYmJveF80MzI2W1sieW1heCJdXSkrCiAgZ2d0aXRsZSgiU2l0dWF0aW9ucyBlbiBtb3V2ZW1lbnQiKSsKICB0aGVtZV9jYXJ0bysKICBmYWNldF9ncmlkKAogICAgcm93cyA9IHZhcnModGltZSksCiAgICBjb2xzID0gdmFycyhkYXRlKQogICkKCmdnc2F2ZSgKICBoZXJlKCJvdXRjb21lcyIsInBsb3Rfb2JzX21vdmluZ19hdGxhcy5qcGciKSwKICB3aWR0aCA9IDYwMDAsIGhlaWdodCA9IDQwMDAsIHVuaXRzID0gInB4IiwgZHBpID0gMjAwKQoKYGBgCgoKI0xlYWZsZXQKYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KCmxpYnJhcnkobWFncml0dHIpCmxpYnJhcnkobGVhZmxldCkKCmxlYWZsZXQoKSAlPiUKICBhZGRDaXJjbGVzKGRhdGEgPSBkZl9zXzQzMjYsCiAgICAgICAgICAgICBsbmcgPSB+WF93Z3M4NCwKICAgICAgICAgICAgIGxhdCA9IH5ZX3dnczg0LAogICAgICAgICAgICAgd2VpZ2h0ID0gMSwKICAgICAgICAgICAgIHJhZGl1cyA9IH5yb3dfdG90YWwvMywKICAgICAgICAgICAgIGNvbG9yID0gInJlZCIpICU+JQogIGFkZFBvbHlsaW5lcyhkYXRhID0gZGZfbV80MzI2LAogICAgICAgICAgICAgICBvcGFjaXR5ID0gMC4yLAogICAgICAgICAgICAgICB3ZWlnaHQgPSAxLAogICAgICAgICAgICAgICBjb2xvciA9ICJibHVlIikgJT4lCiAgYWRkVGlsZXMoKSAlPiUKICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRPcGVuU3RyZWV0TWFwLkJsYWNrQW5kV2hpdGUpICU+JQogIGFkZExheWVyc0NvbnRyb2woCiAgICBvdmVybGF5R3JvdXBzID0gdW5pcXVlKGRmX3NfNDMyNiRzdXJ2ZXlfaWQpLAogICAgb3B0aW9ucyA9IGxheWVyc0NvbnRyb2xPcHRpb25zKGNvbGxhcHNlZCA9IEZBTFNFKQogICkKCmBgYAoK